数字图象处理实验一
数字图像处理实验报告
![数字图像处理实验报告](https://img.taocdn.com/s3/m/4dabe4d0bcd126fff6050b13.png)
数字图像处理实验报告实验一数字图像处理编程基础一、实验目的1. 了解MATLAB图像处理工具箱;2. 掌握MATLAB的基本应用方法;3. 掌握MATLAB图像存储/图像数据类型/图像类型;4. 掌握图像文件的读/写/信息查询;5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法;6. 编程实现图像类型间的转换。
二、实验内容1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。
2. 运行图像处理程序,并保存处理结果图像。
三、源代码I=imread('cameraman.tif')imshow(I);subplot(221),title('图像1');imwrite('cameraman.tif')M=imread('pout.tif')imview(M)subplot(222),imshow(M);title('图像2');imread('pout.bmp')N=imread('eight.tif')imview(N)subplot(223),imshow(N);title('图像3');V=imread('circuit.tif')imview(V)subplot(224),imshow(V);title('图像4');N=imread('C:\Users\Administrator\Desktop\1.jpg')imshow(N);I=rgb2gary(GRB)[X.map]=gary2ind(N,2)RGB=ind2 rgb(X,map)[X.map]=gary2ind(I,2)I=ind2 gary(X,map)I=imread('C:\Users\dell\Desktop\111.jpg');subplot(231),imshow(I);title('原图');M=rgb2gray(I);subplot(232),imshow(M);[X,map]=gray2ind(M,100);subplot(233),imshow(X);RGB=ind2rgb(X,map);subplot(234),imshow(X);[X,map]=rbg2ind(I);subplot(235),imshow(X);四、实验效果实验二 图像几何变换实验一、实验目的1.学习几种常见的图像几何变换,并通过实验体会几何变换的效果;2.掌握图像平移、剪切、缩放、旋转、镜像等几何变换的算法原理及编程实现;3.掌握matlab 编程环境中基本的图像处理函数。
数字图像处理实验报告 实验一 图像增强实验
![数字图像处理实验报告 实验一 图像增强实验](https://img.taocdn.com/s3/m/557b15e16294dd88d0d26bb7.png)
实验一图像增强实验一、实验目标:掌握图像增强的算法。
二、实验目的:1. 了解灰度变换增强和空域滤波增强的Matlab实现方法2. 掌握直方图灰度变换方法3. 掌握噪声模拟和图像滤波函数的使用方法三、实验内容:(1)图像的点操作、邻域操作算法。
(2)图像的直方图处理算法。
四、实验设备:1.PIII以上微机; 2.MATLAB6.5;五、实验步骤:(1)读入图像:用matlab函数实现图像读入(可读入Matlab中的标准测试图像)(原始图像)(2)实现图像点操作运算(如gamma校正,对数校正等)(3)实现图像的邻域处理(实现均值滤波,拉普拉斯滤波)(4)实现直方图均衡处理matlab 源程序clear all;clc;f=imread('girl_noise.jpg');figure,imshow(f),title('原始图像');[m,n]=size(f);f0= im2double(f); % 整型转换为double 类f1=f0;std_i=zeros(1,m-2);%灰线处理for i=2:m-1%灰线处理std_i(i-1)=std(f0(i,:));if(std_i(i-1)<0.1)for j=1:mf0(i,j)=(f0(i-1,j)+f0(i+1,j))/2;endendendfigure,imshow(f0),title('滤除灰线后的图像');fz=f0-f1;[r,c]=find(fz~=0);%寻找灰线噪声的位置f2=f0;change=0;count=0;for i=3:m-2%白线处理for j=1:mif(abs(f0(i,j)-f0(i-1,j))>0.2&&abs(f0(i,j)-f0(i+1,j))>0.2) count=count+1;endif(count>n*0.8)count=0;change=1;break;endendif(change==1)for k=1:mf0(i,k)=(f0(i-1,k)+f0(i+1,k))/2;endchange=0;count=0;endendfigure,imshow(f0),title('滤除白线后的图像');fz1=f2-f0;[r1,c1]=find(fz1~=0); %寻找白线噪声的位置fn = medfilt2(f0); %反射对称填充figure, imshow(fn),title('中值滤波后的图像');f0 = im2double(fn); % 整型转换为double 类g =2*f0- imfilter(f0,w4, 'replicate'); % 增强后的图像figure, imshow(g),title('高提升滤波图像(A=2)');图像处理结果六、结果分析从上面结果可以看出,带状噪声处理部分,已经基本将带状噪声去除。
数字图像处理实验报告
![数字图像处理实验报告](https://img.taocdn.com/s3/m/a0b30da508a1284ac85043c2.png)
目录实验一:数字图像的基本处理操作 (4):实验目的 (4):实验任务和要求 (4):实验步骤和结果 (5):结果分析 (8)实验二:图像的灰度变换和直方图变换 (9):实验目的 (9):实验任务和要求 (9):实验步骤和结果 (9):结果分析 (13)实验三:图像的平滑处理 (14):实验目的 (14):实验任务和要求 (14):实验步骤和结果 (14):结果分析 (18)实验四:图像的锐化处理 (19):实验目的 (19):实验任务和要求 (19):实验步骤和结果 (19):结果分析 (21)实验一:数字图像的基本处理操作:实验目的1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用;2、实现图像的读取、显示、代数运算和简单变换。
3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。
:实验任务和要求1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。
2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。
3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。
4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的对应关系。
:实验步骤和结果1.对实验任务1的实现代码如下:a=imread('d:\');i=rgb2gray(a);I=im2bw(a,;subplot(1,3,1);imshow(a);title('原图像');subplot(1,3,2);imshow(i);title('灰度图像');subplot(1,3,3);imshow(I);title('二值图像');subplot(1,3,1);imshow(a);title('原图像');结果如图所示:图原图及其灰度图像,二值图像2.对实验任务2的实现代码如下:a=imread('d:\');A=imresize(a,[800 800]);b=imread('d:\');B=imresize(b,[800 800]);Z1=imadd(A,B);Z2=imsubtract(A,B);Z3=immultiply(A,B);Z4=imdivide(A,B);subplot(3,2,1);imshow(A);title('原图像 A'); subplot(3,2,2);imshow(B);title('原图像 B'); subplot(3,2,3);imshow(Z1);title('加法图像'); subplot(3,2,4);imshow(Z2);title('减法图像'); subplot(3,2,5);imshow(Z3);title('乘法图像'); subplot(3,2,6);imshow(Z2);title('除法图像');结果如图所示:3.对实验任务3的实现代码如下:s=imread('d:\');i=rgb2gray(s);i=double(i);j=fft2(i);k=fftshift(j); %直流分量移到频谱中心I=log(abs(k)); %对数变换m=fftshift(j); %直流分量移到频谱中心RR=real(m); %取傅里叶变换的实部II=imag(m); %取傅里叶变换的虚部A=sqrt(RR.^2+II.^2);A=(A-min(min(A)))/(max(max(A)))*255;b=circshift(s,[800 450]);b=rgb2gray(b);b=double(b);c=fft2(b);e=fftshift(c);I=log(abs(e));f=fftshift(c);WW=real(f);ZZ=imag(f);B=sqrt(WW.^2+ZZ.^2);B=(B-min(min(B)))/(max(max(B)))*255;subplot(2,2,1);imshow(s);title('原图像');subplot(2,2,2);imshow(uint8(b));title('平移图像');subplot(2,2,3);imshow(A);title('离散傅里叶变换频谱');subplot(2,2,4);imshow(B);title('平移图像离散傅里叶变换频谱');结果如图所示:4.对实验任务4的实现代码如下:s=imread('d:\');i=rgb2gray(s);i=double(i);j=fft2(i);k=fftshift(j);I=log(abs(k));m=fftshift(j);RR=real(m);II=imag(m);A=sqrt(RR.^2+II.^2);A=(A-min(min(A)))/(max(max(A)))*255;b=imrotate(s,-90);b=rgb2gray(b);b=double(b);c=fft2(b);e=fftshift(c);I=log(abs(e));f=fftshift(c);WW=real(f);ZZ=imag(f);B=sqrt(WW.^2+ZZ.^2);B=(B-min(min(B)))/(max(max(B)))*255;subplot(2,2,1);imshow(s);title('原图像');subplot(2,2,2);imshow(uint8(b));title('平移图像');subplot(2,2,3);imshow(A);title('离散傅里叶频谱');subplot(2,2,4);imshow(B);title('平移图像离散傅里叶频谱');结果如图所示::结果分析对MATLAB软件的操作开始时不太熟悉,许多语法和函数都不会使用,写出程序后,调试运行,最开始无法显示图像,检查原因,是有些标点符号没有在英文状态下输入和一些其他的细节,学会了imread(),imshow(),rgb2gray()等函数。
数字图像处理实验一图像的基本操作和基本统计指标计算实验报告.doc
![数字图像处理实验一图像的基本操作和基本统计指标计算实验报告.doc](https://img.taocdn.com/s3/m/636fa43da6c30c2259019eb5.png)
实验一图像的基本操作和基本统计指标计算一、实验目的熟悉MATLAB图像处理工具箱,在掌握MATLAB基本操作的基础上,本课程主要依靠图像处理工具箱验证和设计图像处理算法。
对于初学者来说,勤学多练、熟悉MATLAB图像处理工具箱也是学号本课程的必经之路。
了解计算图像的统计指标的方法及其在图像处理中的意义。
了解图像的几何操作,如改变图像大小、剪切、旋转等。
二、实验主要仪器设备(1)台式计算机或笔记本电脑(2)MATLAB(安装了图像处理工具箱,即Image Processing Toolbox(IPT))(3)典型的灰度、彩色图像文件三、实验原理(1)将一幅图像视为一个二维矩阵。
(2)利用MATLAB图像处理工具箱读、写和显示图像文件。
①调用imread函数将图像文件读入图像数组(矩阵)。
例如“I=imread(‘tire.tif’);”。
其基本格式为:“A=imread(‘filename.fmt’)”,其中,A为二维矩阵,filename.为文件名,fmt 为图像文件格式的扩展名。
②调用imwrite函数将图像矩阵写入图像文件。
例如“imwrite(A,’test_image.jpg’);”。
其基本格式为“imwrite(a,filename.fmt)”。
③调用imshow函数显示图像。
例如“imshow(‘tire.tif’);”。
其基本格式为:I为图像矩阵,N为显示的灰度级数,默认时为256。
(3)计算图像有关的统计参数。
四、实验内容(1)利用MATLAB图像处理工具箱和Photoshop读、写和显示图像文件。
(2)利用MATLAB计算图像有关的统计参数。
五、实验步骤(1)利用“读图像文件I/O”函数读入图像Italy.jpg。
(2)利用“读图像文件I/O”的iminfo函数了解图像文件的基本信息:主要包括Filename(文件名)、FileModDate(文件修改时间)、Filesize(文件尺寸)、Format(文件格式)、FormatVersion (格式版本)、Width(图像宽度)、Height(图像高度)、BitDepth(每个像素的位深度)、ColorType (彩色类型)、CodingMethod(编码方法)等。
数字图像处理实验一图像的基本操作和基本统计指标计算实验报告
![数字图像处理实验一图像的基本操作和基本统计指标计算实验报告](https://img.taocdn.com/s3/m/174b9b63168884868762d668.png)
实验一图像的基本操作和基本统计指标计算一、实验目的熟悉MATLAB图像处理工具箱,在掌握MATLAB基本操作的基础上,本课程主要依靠图像处理工具箱验证和设计图像处理算法。
对于初学者来说,勤学多练、熟悉MATLAB图像处理工具箱也是学号本课程的必经之路。
了解计算图像的统计指标的方法及其在图像处理中的意义。
了解图像的几何操作,如改变图像大小、剪切、旋转等。
二、实验主要仪器设备(1)台式计算机或笔记本电脑(2)MATLAB(安装了图像处理工具箱,即Image Processing Toolbox(IPT))(3)典型的灰度、彩色图像文件三、实验原理(1)将一幅图像视为一个二维矩阵。
(2)利用MATLAB图像处理工具箱读、写和显示图像文件。
①调用imread函数将图像文件读入图像数组(矩阵)。
例如“I=imread(‘tire.tif’);”。
其基本格式为:“A=imread(‘filename.fmt’)”,其中,A为二维矩阵,filename.为文件名,fmt为图像文件格式的扩展名。
②调用imwrite函数将图像矩阵写入图像文件。
例如“imwrite(A,’test_image.jpg’);”。
其基本格式为“imwrite(a,filename.fmt)”。
③调用imshow函数显示图像。
例如“imshow(‘tire.tif’);”。
其基本格式为:I为图像矩阵,N为显示的灰度级数,默认时为256。
(3)计算图像有关的统计参数。
四、实验内容(1)利用MATLAB图像处理工具箱和Photoshop读、写和显示图像文件。
(2)利用MATLAB计算图像有关的统计参数。
五、实验步骤(1)利用“读图像文件I/O”函数读入图像Italy.jpg。
(2)利用“读图像文件I/O”的iminfo函数了解图像文件的基本信息:主要包括Filename(文件名)、FileModDate(文件修改时间)、Filesize(文件尺寸)、Format(文件格式)、FormatVersion (格式版本)、Width(图像宽度)、Height(图像高度)、BitDepth(每个像素的位深度)、ColorType (彩色类型)、CodingMethod(编码方法)等。
数字信号处理图像实验
![数字信号处理图像实验](https://img.taocdn.com/s3/m/845cc35dad02de80d4d84026.png)
实验一、数字图像获取实验二、图像的傅立叶变换I=imread(‘原图像名.gif’); %读入原图像文件imshow(I); %显示原图像fftI=fft2(I); %二维离散傅立叶变换sfftI=fftshift(fftI); %直流分量移到频谱中心RR=real(sfftI); %取傅立叶变换的实部II=imag(sfftI); %取傅立叶变换的虚部A=sqrt(RR.^2+II.^2);%计算频谱幅值a=min(min(A));b=max(max(A));B=(A-a)/(b-a)*225; %归一化figure; %设定窗口imshow(B); %显示原图像的频谱实验三、图像增强a=imread('1.jpg'); % 读入原图像I=rgb2gray(a);subplot(2,3,1);Imshow(a); %显示原图像Title('原图像'); %给原图像加标题名subplot(2,3,2);Imshow(I); %显示灰度化图像Title('灰度图'); %给原图像加标题名Subplot(2,3,3);Imhist(I,64); %将原图像直方图显示为64级灰度Title('灰度图直方图') ; %给原图像直方图加标题名J=histeq(I); %对原图像进行直方图均衡化处理subplot(2,3,5);imshow(J); %显示直方图均衡化后的图像Title('直方图均衡化后的图像') ; %给直方图均衡化后的图像加标题名Subplot(2,3,6);Imhist(J,64) ; %将均衡化后图像的直方图显示为64级灰度Title('均衡变换后的直方图') ; %给均衡化后图像直方图加标题名实验四、图像压缩(1)利用DCT变换进行图像压缩RGB = imread('1.jpg');I = rgb2gray(RGB);J = dct2(I); % 离散余弦变换(DCT)图像压缩imshow(log(abs(J)),[]), colormap(jet(64)), colorbarJ(abs(J) < 10) = 0;K = idct2(J);figure,imshow(I)figure,imshow(K,[0 255])2)利用离散余弦变换进行JPEG图像压缩IMG = imread('1.JPG'); %读入图像I = rgb2gray(IMG); %转换成灰度图像N=8; %子块的大小,可为4,8,16I=im2double(I); %转换为双精度型T =dctmtx(N); %产生二维DCT变换矩阵B=blkproc(I,[N,N],'P1*x*P2',T,T'); %二值掩模,用来压缩DCT系数,只留下DCT系数中左上角的10个mask=[1 1 1 1 0 0 0 01 1 1 0 0 0 0 01 1 0 0 0 0 0 01 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0];B2=blkproc(B,[N,N],'P1.*x',mask); %只保留DCT变换的10个系数I2= blkproc(B2,[N,N],'P1*x*P2',T',T); %重构图像subplot(1,2,1);imshow(I);title('原始图像');subplot(1,2,2);imshow(I2);title('压缩重构后的图像');3)利用行程编码(RLE)进行图像压缩I=checkerboard(10,6);imshow(I)[m n]=size(I);J=[];for i=1:mvalue=I(i,1);num=1;for j=2:nif I(i,j)==valuenum=num+1;elseJ=[J num value];num=1;value=I(i,j);endend% I=[J num value 0 0]; %添加的行判断位0 0enddisp('原图像大小:')whos('I');disp('压缩图像大小:')whos('J');disp('图像的压缩比:')disp(m*n/length(J))实验五、图像融合调入两幅数字图像,并进行三种方法的图像融合;图像融合的MA TLAB程序如下:1)调入、显示两幅图像的程序语句load tartan;X1=X;map1=map;load sinsin;X2=X;map2=map;Subplot(1,2,1);image(X1),colormap(map1);Title('图像map1');Subplot(1,2,2);image(X2),colormap(map2);Title('图像map2');2)两幅图像直接融合的程序语句figure,subplot(1,3,1);image((X1+X2)/2),colormap(map2);title('两图像直接相加融合');3)两幅图像傅立叶变换融合的程序语句F1=fft2(X1);F2=fft2(X2);X=abs(ifft2(F1+F2)/2);Subplot(1,3,2);image(X),colormap(map2);Title('两幅图像傅立叶变换融合'); 4)两幅图像小波变换融合的程序语句[C1,L1]=wavedec2(X1,2,'sym4');[C2,L2]=wavedec2(X2,2,'sym4');C=C1+C2;X=waverec2(C,L1,'sym4');Subplot(1,3,3);image(X/2),colormap(map2);Title('两图像小波变换融合') ;。
数字图像处理图像变换实验报告
![数字图像处理图像变换实验报告](https://img.taocdn.com/s3/m/3107551fc850ad02de8041fe.png)
实验报告实验名称:图像处理姓名:刘强班级:电信1102学号:1404110128实验一图像变换实验——图像点运算、几何变换及正交变换一、实验条件PC机数字图像处理实验教学软件大量样图二、实验目的1、学习使用“数字图像处理实验教学软件系统”,能够进行图像处理方面的简单操作;2、熟悉图像点运算、几何变换及正交变换的基本原理,了解编程实现的具体步骤;3、观察图像的灰度直方图,明确直方图的作用与意义;4、观察图像点运算与几何变换的结果,比较不同参数条件下的变换效果;5、观察图像正交变换的结果,明确图像的空间频率分布情况。
三、实验原理1、图像灰度直方图、点运算与几何变换的基本原理及编程实现步骤图像灰度直方图就是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度分布情况,为图像的相关处理操作提供了基本信息。
图像点运算就是一种简单而重要的处理技术,它能让用户改变图像数据占据的灰度范围。
点运算可以瞧作就是“从象素到象素”的复制操作,而这种复制操作就是通过灰度变换函数实现的。
如果输入图像为A(x,y),输出图像为B(x,y),则点运算可以表示为:B(x,y)=f[A(x,y)]其中f(x)被称为灰度变换(Gray Scale Transformation,GST)函数,它描述了输入灰度值与输出灰度值之间的转换关系。
一旦灰度变换函数确定,该点运算就完全确定下来了。
另外,点运算处理将改变图像的灰度直方图分布。
点运算又被称为对比度增强、对比度拉伸或灰度变换。
点运算一般包括灰度的线性变换、阈值变换、窗口变换、灰度拉伸与均衡等。
图像几何变换就是图像的一种基本变换,通常包括图像镜像变换、图像转置、图像平移、图像缩放与图像旋转等,其理论基础主要就是一些矩阵运算,详细原理可以参考有关书籍。
实验系统提供了图像灰度直方图、点运算与几何变换相关内容的文字说明,用户在操作过程中可以参考。
下面以图像点运算中的阈值变换为例给出编程实现的程序流程图,如下:2、图像正交变换的基本原理及编程实现步骤数字图像的处理方法主要有空域法与频域法,点运算与几何变换属于空域法。
《数字图象处理》实验指导书
![《数字图象处理》实验指导书](https://img.taocdn.com/s3/m/23e60d0ecc17552707220821.png)
《数字图象处理》实验和大作业指导书计算机科学与工程学院目录目录 (1)实验一:数字图像读取及色彩、亮度、对比度变化 (2)实验二:数字图像变换与伽马校正 (3)实验三:数字图像的噪声去除 (4)实验四:图像的空间域锐化(拉普拉斯算子) (5)实验五:频率域低通和高通滤波 (6)实验六:数字图像复原 (7)实验七:人脸皮肤颜色分层 (8)大作业 (9)实验一:数字图像读取及色彩、亮度、对比度变化一、实验目的:了解数字图像的存储格式,并学会对图像的某些视觉特征作简单处理。
二、实验要求:1.从最常用的“.BMP”图像格式中读取图像数据;2.对数字图像的表示方式(如RGB、YUV)及各种表示方式之间的转换有初步了解;3.根据输入参数改变数字图像的色彩、亮度、对比度。
三、实验步骤:1.根据BMP格式,将图像内容读入内存数组;2.通过访问数字图像RGB三个通道的对应矩阵,改变数字图像的色彩;3.将数字图像的RGB表示转换为YUV表示;Y=0.30R+0.59G+0.11BU=0.70R-0.59G-0.11BV=-0.30R-0.59G+0.89B4.通过访问Y(亮度)通道,改变数字图像的亮度;5.通过Y(亮度)通道作灰度的线性变换,改变数字图像的对比度。
四、实验图像:实验二:数字图像变换与伽马校正一、实验目的:了解数字图像的灰度反变换和γ(0.4,0.6,0.8)校正。
二、实验要求:1. 对图像进行灰度变换。
2. 对图像进行γ校正。
三、实验步骤:1. 将BMP图像内容读入内存数组。
2. 调整图像的灰度,对图像进行灰度变换(反变换)。
3. 对图像进行γ较正,分别取值为0.4,0.6,0.8.四、实验图像:灰度变换γ较正实验三:数字图像的噪声去除一、实验目的:学会用滤波器去除图像中的噪声。
二、实验要求:1.用均值滤波器去除图像中的噪声; 2.用中值滤波器去除图像中的噪声; 3.比较两种方法的处理结果三、实验步骤:1.根据BMP 格式,将图像内容读入内存数组; 2.用均值滤波器去除图像中的噪声;3.用中值滤波器去除图像中的噪声;将两种处理方法的结果与原图比较; 4.注意两种处理方法对边缘的影响。
数字图像处理实验报告
![数字图像处理实验报告](https://img.taocdn.com/s3/m/1820aca5f01dc281e43af0e8.png)
数字图像处理实验报告数字图像处理实验报告1一. 实验内容:主要是图像的几何变换的编程实现,具体包括图像的读取、改写,图像平移,图像的镜像,图像的转置,比例缩放,旋转变换等.具体要求如下:1.编程实现图像平移,要求平移后的图像大小不变;2.编程实现图像的镜像;3.编程实现图像的转置;4.编程实现图像的比例缩放,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的缩放效果;5.编程实现以任意角度对图像进行旋转变换,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的旋转效果.二.实验目的和意义:本实验的目的是使学生熟悉并掌握图像处理编程环境,掌握图像平移、镜像、转置和旋转等几何变换的方法,并能通过程序设计实现图像文件的读、写操作,及图像平移、镜像、转置和旋转等几何变换的程序实现.三.实验原理与主要框架:3.1 实验所用编程环境:Visual C++(简称VC)是微软公司提供的基于C/C++的应用程序集成开发工具.VC拥有丰富的功能和大量的扩展库,使用它能有效的创建高性能的Windows应用程序和Web应用程序.VC除了提供高效的C/C++编译器外,还提供了大量的可重用类和组件,包括著名的微软基础类库(MFC)和活动模板类库(ATL),因此它是软件开发人员不可多得的开发工具.VC丰富的功能和大量的扩展库,类的重用特性以及它对函数库、DLL库的支持能使程序更好的模块化,并且通过向导程序大大简化了库资源的使用和应用程序的开发,正由于VC具有明显的优势,因而我选择了它来作为数字图像几何变换的开发工具.在本程序的开发过程中,VC的核心知识、消息映射机制、对话框控件编程等都得到了生动的体现和灵活的应用.3.2 实验处理的对象:256色的BMP(BIT MAP )格式图像BMP(BIT MAP )位图的文件结构:具体组成图: BITMAPFILEHEADER位图文件头(只用于BMP文件) bfType=BM bfSize bfReserved1bfReserved2bfOffBitsbiSizebiWidthbiHeightbiPlanesbiBitCountbiCompressionbiSizeImagebi_PelsPerMeterbiYPelsPerMeterbiClrUsedbiClrImportant单色DIB有2个表项16色DIB有16个表项或更少256色DIB有256个表项或更少真彩色DIB没有调色板每个表项长度为4字节(32位)像素按照每行每列的顺序排列每一行的字节数必须是4的整数倍BITMAPINFOHEADER 位图信息头 Palette 调色板 DIB Pi_els DIB图像数据1. BMP文件组成BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成.2. BMP文件头BMP文件头数据结构含有BMP文件的类型(必须为BMP)、文件大小(以字节为单位)、位图文件保留字(必须为0)和位图起始位置(以相对于位图文件头的偏移量表示)等信息.3. 位图信息头BMP位图信息头数据用于说明位图的尺寸(宽度,高度等都是以像素为单位,大小以字节为单位, 水平和垂直分辨率以每米像素数为单位) ,目标设备的级别,每个像素所需的位数, 位图压缩类型(必须是 0)等信息.4. 颜色表颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色.具体包含蓝色、红色、绿色的亮度(值范围为0-255)位图信息头和颜色表组成位图信息5. 位图数据位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上.Windows规定一个扫描行所占的字节数必须是 4的倍数(即以long为单位),不足的以0填充.3.3 BMP(BIT MAP )位图的显示:①一般显示方法:1. 申请内存空间用于存放位图文件2. 位图文件读入所申请内存空间中3. 在函数中用创建显示用位图, 用函数创建兼容DC,用函数选择显示删除位图但以上方法的缺点是: 1)显示速度慢; 2) 内存占用大; 3) 位图在缩小显示时图形失真大,(可通过安装字体平滑软件来解决); 4) 在低颜色位数的设备上(如256显示模式)显示高颜色位数的图形(如真彩色)图形失真严重.②BMP位图缩放显示 :用视频函数来显示位图,内存占用少,速度快,而且还可以对图形进行淡化(Dithering )处理.淡化处理是一种图形算法,可以用来在一个支持比图像所用颜色要少的设备上显示彩色图像.BMP位图显示方法如下:1. 打开视频函数,一般放在在构造函数中2. 申请内存空间用于存放位图文件3. 位图文件读入所申请内存空间中4. 在函数中显示位图5. 关闭视频函数 ,一般放在在析构函数中以上方法的优点是: 1)显示速度快; 2) 内存占用少; 3) 缩放显示时图形失真小,4) 在低颜色位数的设备上显示高颜色位数的图形图形时失真小; 5) 通过直接处理位图数据,可以制作简单动画.3.4 程序中用到的访问函数Windows支持一些重要的DIB访问函数,但是这些函数都还没有被封装到MFC中,这些函数主要有:1. SetDIBitsToDevice函数:该函数可以直接在显示器或打印机上显示DIB. 在显示时不进行缩放处理.2. StretchDIBits函数:该函数可以缩放显示DIB于显示器和打印机上.3. GetDIBits函数:还函数利用申请到的内存,由GDI位图来构造DIB.通过该函数,可以对DIB的格式进行控制,可以指定每个像素颜色的位数,而且可以指定是否进行压缩.4. CreateDIBitmap函数:利用该函数可以从DIB出发来创建GDI位图.5. CreateDIBSection函数:该函数能创建一种特殊的DIB,称为DIB项,然后返回一个GDI位图句柄.6. LoadImage函数:该函数可以直接从磁盘文件中读入一个位图,并返回一个DIB句柄.7. DrawDibDraw函数:Windows提供了窗口视频(VFW)组件,Visual C++支持该组件.VFW中的DrawDibDraw函数是一个可以替代StretchDIBits的函数.它的最主要的优点是可以使用抖动颜色,并且提高显示DIB的速度,缺点是必须将VFW代码连接到进程中.3.5 图像的几何变换图像的几何变换,通常包括图像的平移、图像的镜像变换、图像的转置、图像的缩放和图像的旋转等.一、实验的目的和意义实验目的:本实验内容旨在让学生通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。
数字图象处理实验报告
![数字图象处理实验报告](https://img.taocdn.com/s3/m/32cbd70bba1aa8114431d923.png)
数字图象处理实验报告第一题图像直方图统计一、实验原理图像直方图就是反映图像象素灰度特性的统计图表。
通过C++对图像的灰度进行统计,绘出图表。
二、算法int p[256]={0}; //建立256长度的数组存放灰度值int i=0,num=0;for (int x=0;x<=399;x++){for (int y=0;y<=299;y++){num=ReadPixel(x,y);p[num]=p[num]+1;//累加结果存入该位数组}}三、结果图一四、分析整张图片亮度偏大,及峰值会主要分布在高灰度区,统计的结果和我们分析的一样。
第二题 图像的线性处理一、 原理对于灰度分布范围较窄的图像,我们可以采用图像灰度线性变换方法,提高其对比度,达到较为满意的视觉效果。
图像灰度的线性变换可以是单段线性变换或分段线性变换,设变换前的灰度范围为],[21r r r ∈,max 21min r r r r ≤<≤,变换后的灰度范围为],[21s s s ∈,max 21min s s s s ≤<≤,则图像灰度的线性或分段线性变换可以表示为:⎪⎪⎩⎪⎪⎨⎧+---=21111212)(s s s r r r r s s s m a 21m i n 21r r r r r r r r r ≤<<≤≤≤ 上式所代表的变换过程可以用下图来表示:图像灰度线性变换示意图从上图可以看到变换后的灰度区间比变换前的灰度区间要大,也就是说经过线性变换后,图像的灰度对比度提高了,从而改善了图像的视觉效果。
将这样的线性变换应用到灰度分布范围较窄的图像,就可以提高图像的对比度,使观察者能更好地理解图像,其变换前后的灰度直方图如下图所示。
线性变换前后直方图二、算法Int max=min=p[1][1];//初始化最大最小灰度for(int m=1;m<=318;m++){for(int n=1;n<=198;n++){if (p[m][n]>max) max=p[m][n];//计算得最大灰度if (p[m][n]<min) min=p[m][n]; //计算得最小灰度}}for(int x=1;x<=318;x++){for(int y=1;y<=198;y++){if (p[x][y]<min) p[x][y]=0;if (p[x][y]>max) p[x][y]=255;if ((p[x][y]>=min) && (p[x][y]<=max)) r=(255/(max-min))*(p[x][y]-min);//进行线性变化WritePixel(x,y,r);}}三、结果图二四、分析图二中,上面一幅图是经过灰度变化后的图,下面一张是原图,通过对比,可以很清晰的发现,经过灰度变化后,整张图片灰度范围变大了,有了更好的视觉效果第三题 图像平滑消噪处理一、 原理图像平滑技术是基于图像是由色块组成,而噪声以孤立点形式存在,通过对所选区域内的象素值进行平均处理,并以平均值代替中心象素值,从而消除图像的噪声,其数学表达式如下:∑∈=s y x y x f M y x g ),(),(1),(S 为定义的邻域, M 为邻域中包含的象素数,通常邻域选择为5533⨯⨯或…,较大邻域较少使用。
数字图象实验一
![数字图象实验一](https://img.taocdn.com/s3/m/87ded9705acfa1c7aa00cca5.png)
数字图像处理实验--北工大实验一BMP文件读写实验要求:用画笔生成一幅图像,保存成1.BMP文件。
设图像宽度width,图像高度height。
1、打开1.BMP文件,输出图像中任意一个为5*5矩形区域对应的图像数据,并以文本文件的方式输出。
进入图像处理系统,打开1.BMP,验证程序输出结果。
2、打开1.BMP文件,改变以下矩形区域对应的图像数据为0(或255)(height/3,width/3)(height*2/3,width*2/3)输出新的图像文件2.BMP。
进入图像处理系统,打开2.BMP,检查修改结果是否正确。
3、打开1.BMP文件,将图像宽度和高度进行延拓,宽度变为width+20,图像高度变为height+15,延拓部分置0(或255)。
并输出新的图像文件3.BMP,进入图像处理系统,打开3.BMP,检查结果是否正确。
4、选择一张256色彩色图像,改变调色板索引值对应的RGB值,其他文件头部分不变,输出新的图像。
实验1 BMP文件读写用画笔生成一幅图像,保存成 1.BMP文件。
设图像宽度width,图像高度height。
原始图像如下图所示:一、打开1.BMP文件,输出图像中任意一个为5*5矩形区域对应的图像数据,并以文本文件的方式输出。
程序:#include"stdio.h"#define W 512#define H 512typedef struct PP{unsigned char B,G,R;}PIXEL;int main(){FILE*fp,*fp2;char filehead[54];int i,j;//PIXEL nowP,noP[W];PIXEL nowP [H][W];fp=fopen("1.bmp","rb");fp2=fopen("2.txt","wb");fread(filehead,1,54,fp);fread(nowP,H*W,3,fp);{fread(&nowP,1,3,fp);fprintf(fp2,"%d,%d,%d\t",nowP.B,nowP.G,nowP.R);}// fread(&noP,W-5,3,fp);// fprintf(fp2,"\n");}fclose(fp);fwrite(filehead,1,54,fp2);fwrite(nowP,H*W,3,fp2);fclose(fp2);return 0;}实验结果:二、打开1.BMP文件,改变以下矩形区域对应的图像数据为0(或255)(height/3,width/3)(height*2/3,width*2/3)输出新的图像文件2.BMP。
南昌大学-数字图像处理实验报告1-8(全)
![南昌大学-数字图像处理实验报告1-8(全)](https://img.taocdn.com/s3/m/5a8f927e01f69e314332949d.png)
NANCHANG UNIVERSITY数字图象处理实验报告专业:通信工程班级:121班学号:6100212024学生姓名:徐万然2015年4月20日目录实验1:图像信号的数字化实验2:图像灰度级修正实验3:图像的平滑滤波实验4:图像的锐化处理实验5:图像的伪彩色处理实验6:图像的几何变化实验7:图像的复原处理实验8:图像的正交变换实验一:图像信号的数字化一、实验目的通过本实验了解图像的数字化参数取样频率(象素个数)、量化层数与图像质量的关系。
二、实验内容编写并调试图像数字化程序,要求参数k,n 可调。
其中k为亚抽样比例;n 为量化比特数;选择任意图像进行处理,在显示器上观察各种数字化参数组合下的图像效果。
三、实验程序f=imread('Water lilies.jpg');%读入一张图片f1=rgb2gray(f);%将rgb值转换为灰度图subplot(3,3,1),imshow(f),title('灰度图');%显示这幅图像f2=im2bw(f1);%将图像转换为二值图subplot(3,3,2),imshow(f2),title('二值图');%显示这幅图像f3=~f2;%对图像进行取反操作subplot(3,3,3),imshow(f3),title('取反图');%显示这幅图像f4=imnoise(f,'gaussian');%subplot(3,3,4),imshow(f4),title('加高斯噪声图');%对象进行预操作,加入高斯噪声h=ones(5,5)/25;%设计一个5*5的均值滤波器f5=imfilter(f4,h);%对图像进行均值滤波subplot(3,3,5),imshow(f5),title('平滑滤波图');%显示这幅图像f6=imadjust(f,[0,1],[0,1]);%对图像灰度值进行归一化处理subplot(3,3,6),imshow(f6),title('灰度级修正图1');%显示这幅图像f7=imadjust(f,[0,0.8],[0,1]);%降低输入的灰度值subplot(3,3,7),imshow(f7),title('灰度级修正图2');%显示这幅图像四、实验结果五、实验分析及心得通过本次的实验,我学会了使用MA TLAB来进行简单图像处理的步骤。
数字图像处理实验报告
![数字图像处理实验报告](https://img.taocdn.com/s3/m/83e003203868011ca300a6c30c2259010202f3b2.png)
数字图像处理实验报告数字图像处理实验报告实验⼀数字图像基本操作及灰度调整⼀、实验⽬的1)掌握读、写图像的基本⽅法。
2)掌握MATLAB语⾔中图像数据与信息的读取⽅法。
3)理解图像灰度变换处理在图像增强的作⽤。
4)掌握绘制灰度直⽅图的⽅法,理解灰度直⽅图的灰度变换及均衡化的⽅法。
⼆、实验内容与要求1.熟悉MATLAB语⾔中对图像数据读取,显⽰等基本函数特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。
1)将MATLAB⽬录下work⽂件夹中的forest.tif图像⽂件读出.⽤到imread,imfinfo等⽂件,观察⼀下图像数据,了解⼀下数字图像在MATLAB中的处理就是处理⼀个矩阵。
将这个图像显⽰出来(⽤imshow)。
尝试修改map颜⾊矩阵的值,再将图像显⽰出来,观察图像颜⾊的变化。
2)将MATLAB⽬录下work⽂件夹中的b747.jpg图像⽂件读出,⽤rgb2gray()将其转化为灰度图像,记为变量B。
2.图像灰度变换处理在图像增强的作⽤读⼊不同情况的图像,请⾃⼰编程和调⽤Matlab函数⽤常⽤灰度变换函数对输⼊图像进⾏灰度变换,⽐较相应的处理效果。
3.绘制图像灰度直⽅图的⽅法,对图像进⾏均衡化处理请⾃⼰编程和调⽤Matlab函数完成如下实验。
1)显⽰B的图像及灰度直⽅图,可以发现其灰度值集中在⼀段区域,⽤imadjust函数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰度直⽅图与原灰度直⽅图的区别。
2) 对B 进⾏直⽅图均衡化处理,试⽐较与源图的异同。
3) 对B 进⾏如图所⽰的分段线形变换处理,试⽐较与直⽅图均衡化处理的异同。
图1.1 分段线性变换函数三、实验原理与算法分析1. 灰度变换灰度变换是图像增强的⼀种重要⼿段,它常⽤于改变图象的灰度范围及分布,是图象数字化及图象显⽰的重要⼯具。
DSP实验报告之数字图象处理实验
![DSP实验报告之数字图象处理实验](https://img.taocdn.com/s3/m/f69b0d13964bcf84b9d57be7.png)
DSP技术及应用实验报告学院:班级:姓名:学号:指导老师:完成日期:数字图象处理实验一、实验目的1. 学习使用实时运行库并了解数字图象处理的基本原理;2. 熟悉用C和汇编混合编程的方法及混合编程的调试方法;3. 学习灰度图象反色处理技术及其二值化处理技术。
二、实验环境1. 集成开发环境Code Composer Studio2.0(简称CCS)2. 实验程序DSP54X-28-Tuxiangchuli.c,DSP54X-28-Tuxiangchuli.cmd,rts.lib,c5402.gel(说明同前)。
三、实验步骤实验操作流程参照前面实验。
1. 建立新项目DSP54X-28-Tuxiangchuli.pjt,添加所需文件。
双击打开源程序DSP54X-28-Tuxiangchuli.c,找到打开图片语句,根据源语句及Tupian文件夹所在位置,重新设置好图片的打开路径(保存时注意文件属性。
必须修改好,否则会要求手动输入64*64个数据,如出现这种情况,通过任务管理器关闭CCS后重新打开修改)。
2. 改设置:Build option子菜单linker中Basic项Autoinit Model 改为load-time Initialization或Run-time Initialization(用No Initialization 得不到正确的图像)。
3. 编译连接Build后, 装载得到的.out程序。
主程序中,在三个“i=0”处设置三个断点,如下图所示。
选择Debug_>Go main,使程序从main处开始执行。
单击“Run”,程序运行到第一个断点处停止;4. 用View/Graph/Image打开一个图形观察窗口,以观察程序载入的“Lena64.bmp”图像,该图像在“....\Tupian”目录中;按下图设置该观察窗口,以观察变量y为64*64的二维数组(也可在程序执行前就打开图形窗口,设置完确定时对y选择“否”即可):下图为“Lena64.bmp”在CCS环境下第一个断点处的显示图像;单击“Run”,程序运行到第二个断点处停止,这时可在图形观察窗口中,观察原图像经反色处理后的结果图像,如下图:再单击“Run”,程序运行到第三个断点处停止,这时可在图形观察窗口中,观察到原图像二值化处理后的结果图像,本程序中,二值化处理阀值设为128,见下图:5.修改程序,对图像做其它处理(如反向显示,上下颠倒等),记录实验数据及结果,写出报告。
数字图象处理实验
![数字图象处理实验](https://img.taocdn.com/s3/m/45802046be1e650e52ea998d.png)
实验检查
读入一幅带噪声图象,实现低通去噪,输出处理后图象; 读入一幅模糊图象,实现高通去模糊,输出处理后图象; 读入一副灰度图象,实现伪彩色(参数可调)。
实验测试图象
lena_noise.bmp, lena_blur.bmp
实习九(选做)
实验内容
根据给定的人脸库,首先确定出每幅图象的人脸部 分; 然后基于K-L变换给出所有图象的特征脸; 最后任意给出一幅人脸,将其从已有的人脸库中识 别出来。
实验检查
读入变形后的图象,输出显示校正后的图象。
实验测试图象
point.bmp, point_sp.bmp, tiger_sp.bmp
实习四(必做)
实验内容
编制一个通用的边缘提取函数; 通过输入不同的参数,能够实现Sobel算子、 Prewitt算子、Roberts算子、Marr算子和Canny边 缘检测。
实习七(选做)
实验内容
在 N = M = 2i 情况下,请你编制二维快速傅立叶变 换、余弦变换以及反变换。
实验检查
给定任意二维矩阵,根据编制的傅立叶变换函数、 余弦变换和反变换函数,分别输出结果。 结果与Matlab自带函数进行比对。
实习八(必做)
实验内容
实现一个通用的高通、低通、带通和带阻滤波器函数; 其中又分别实现理想、巴特沃思和指数等滤波形式; 实验伪彩色处理。
实验测试图象
number.bmp
实验测试图象
二值图象由一段文字组成,word_bw.bmp
实习六(选做)
实验内容
给定图象,请你首先对图象进行二值化处理; 然后分别采用判断简单边界点和形态学击中击不中 变换两种方法进行细化处理。
实验检查
读入一幅图象,通过边缘提取二值化后,根据给定 的两种方法,输出细化后图象。
数字图像处理实验报告
![数字图像处理实验报告](https://img.taocdn.com/s3/m/26ce18cae109581b6bd97f19227916888486b9fb.png)
数字图像处理实验报告数字图像处理实验报告161420230 蔡讴实验一1.获取实验用图像:rice.jpg. 使用imread函数将图像读入Matlab。
a=imread('D\:rice.png');figure;title(‘原图’);axis on;imshow(a);2.产生灰度变换函数T1,使得:0.3r r < 0.35s = 0.105 + 2.6333(r –0.35) 0.35 ≤r ≤0.651 + 0.3(r – 1) r > 0.65用T1对原图像rice.jpg进行处理,使用imwrite函数保存处理后的新图像。
a=double(a)/256;figure,imhist(a),title('原直方图');axis on;r=[0:0.001:1];s1=[r<0.35].*r*0.3+[r<=0.65].*[r>=0.35].*(0.105+2.6333*(r-0.35))+[ r>0.65].*(1+0.3*(r-1));a1=[a<0.35].*a*0.3+[a<=0.65].*[a>=0.35].*(0.105+2.6333*(a -0.35)) +[a>0.65].*(1+0.3*(a-1));figure,imshow(a1),title('改后一');axis on;figure,imhist(a1),title('改后直方图一');axis on;imwrite(a1,'改后rice一.jpg');3.产生灰度变换函数T2,使得:s =用T2对原图像rice.jpg 进行处理,使用imwrite 保存处理后的新图像。
r2=[0:0.001:1];t2=[r2<=0.5].*(15.9744*r2.^5)+[r2>0.5].*((r2-0.5).^0.2+0.12); subplot(2,3,5); plot(r2,t2,'r'); title('更改后直方图');subplot(2,3,4); imshow(a); title('更改后');A3=[a<=0.5].*(15.9744*a.^5)+[a>0.5].*((a-0.5).^0.2+0.12); subplot(2,3,6); imshow(A3); title('更改后');imwrite(A3,'更改_3.jpg','jpg');15.9744r 5 r ≤ 0.5 (r – 0.5)0.2+ 0.12 r > 0.54.分别用s = r0.6; s = r0.4; s = r0.3对kids.tiff图像进行处理。
数字图象处理实验数字图像信号的基本运算
![数字图象处理实验数字图像信号的基本运算](https://img.taocdn.com/s3/m/65f47e0f0912a216147929c4.png)
实验一、数字图像信号的基本运算1、实验目的1熟悉MATLAB环境;2熟悉数字图像信号的基本运算;2、实验原理1、图像的读取MATLAB中从图像文件中读取数据用函数imread(),这个函数的作用就是将图像文件的数据读入矩阵中,此外还可以用imfinfo()函数查看图像文件的信息。
%图像数据及图像信息的读取imfinfo c:\lilizong\boat.bmp%读取图像信息[A,M]=imread('c:\lilizong\boat.bmp');%图像数据的读取,将图像数据放入矩阵A中,颜色数据放入矩阵M中imshow(A,M);title('原图像');M(:,1)=0; %将颜色数据矩阵的一列置零figureimshow(A,M);title('改变颜色后的图像')2、图像的代数运算代数运算是指对两幅输入图像进行点对点的加、减、乘和除计算而得到输出图像的运算。
对于相加和相乘的情形,可能不止有两幅图像参加运算。
图像相加的一个重要应用是对同一场景的多幅图像求平均值。
这点被经常用来有效地降低加性(additive)随机噪声的影响。
%图象加噪声再通过多次相加求平均的方法祛除噪声[I,M]=imread('c:\boat.png');J=imnoise(I,'salt & pepper',0.005);subplot(1,2,1),imshow(I,M),title('原图象');subplot(1,2,2),imshow(J,M),title('加噪声后图象');K=zeros(256);for i=1:100J=imnoise(I,'salt & pepper',0.005);J1=im2double(J);% K=K+J1;K=K+J1;endK=K/100;figure,imshow(K),title('相加求平均后的图象');3、实验步骤1打开计算机,安装和启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;2利用MatLab工具箱中的函数编制程序;3 a).调入、显示获得的图像;b)对图像做图像的代数运算;4记录和整理实验报告。
数字图像实验一
![数字图像实验一](https://img.taocdn.com/s3/m/017492a7960590c69ec37676.png)
实验一图像输入与输出基本操作通信1404 史新宇 201408030406一、实验题目:图像输入与输出操作二、实验目的学习在MATLAB环境下对图像文件的I/O操作,为读取各种格式的图像文件和后续进行图像处理打下基础。
三、实验内容利用MATLAB为用户提供的专门函数从图像格式的文件中读/写图像数据、显示图像,以及查询图像文件的信息。
四、实验原理(1)图像文件的读取利用imread函数可以完成图像文件的读取操作。
常用语法格式为:I=imread(‘filename’,‘fmt’)或I=imread(‘filename.fmt’);其作用是将文件名用字符串filename表示的、扩展名用字符串fmt(表示图像文件格式)表示的图像文件中的数据读到矩阵I中。
当filename中不包含任何路径信息时,imread会从当前工作目录中寻找并读取文件。
要想读取指定路径中的图像,最简单的方法就是在filename中输入完整的或相对的地址。
MATLAB支持多种图像文件格式的读、写和显示。
因此参数fmt常用的可能值有:‘bmp’Windows位图格式‘jpg’or‘jpeg’联合图像专家组格式‘tif’or‘tiff’标志图像文件格式例如,命令行>>I=imread(‘lena.jpg’);将JPEG图像lena读入图像矩阵I中。
(2)图像文件的写入(保存)利用imwrite完成图像的输出和保存操作,也完全支持也完全支持上述各种图像文件的格式。
其语法格式为:imwrite(I,‘filename’,‘fmt’)或imwrite(I,‘filename.fmt’);注意事项:当利用imwrite函数保存图像时,MATLAB默认的保存方式是将其简化为uint8的数据类型。
与读取文件类型类似,MATLAB在文件保存时还支持16位的PNG和TIFF图像。
所以,当用户保存这类文件时,MATLAB就将其存储在uint16中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
深圳大学实验报告
课程名称:数字图像处理
实验项目名称:数字图像的基本操作与代数运算
学院:信息工程学院
专业:电子信息工程
指导教师:**
报告人:许儒满学号:********** 班级: 1 实验时间:2016/3/7
实验报告提交时间:
教务部制
%实验一
clc;
clear all;
close all;
X1=imread('eight.tif');
subplot(2,2,1);
imshow(X1);
title('eight');
c1=imfinfo('eight.tif')
X2=imread('D:\matleb\bin\exp1_img\flowers.tif'); subplot(2,2,2);
imshow(X2);
title('flowers');
c2=imfinfo('D:\matleb\bin\exp1_img\flowers.tif')
X3=imread('D:\matleb\bin\exp1_img\RGBimageA.tiff'); subplot(2,2,3);
imshow(X3);
title('RGBimageA');
c3=imfinfo('D:\matleb\bin\exp1_img\RGBimageA.tiff')
imshow(X(:,:,1));
title('Rͼ');
subplot(2,2,3)
imshow(X(:,:,2));
title('Gͼ');
subplot(2,2,4)
imshow(X(:,:,3));
title('Bͼ');
3%实验三
clc;
clear all;
close all;
X=imread('D:\matleb\bin\exp1_img\RGBimageA.tiff'); X2=imcrop(X,[100,100,400,425]);
imwrite(X2,'RGBimageA2.tiff')
subplot(1,2,1)
imshow(X);
title('Ô-ͼ');
imshow(X2);
title('¼ô²Ãͼ');
4
%实验四
clc;
clear all;
close all;
X=imread('D:\matleb\bin\exp1_img\RGBimageB.tiff'); imwrite(X,'RGBimageB.jpg','jpg');
5
%实验五
clc;
clear all;
close all;
X=imread('D:\matleb\bin\exp1_img\eight.png');
J=imnoise(X, 'gaussian',0,0.02);
subplot(2,2,1); imshow(X); title('原图像');
subplot(2,2,2); imshow(J); title('加高斯噪声'); [m,n] = size(X);
K = zeros(m, n);
K1=K;K2=K;K3=K;
for i = 1 : 5
J = imnoise(X, 'gaussian', 0, 0.02); J1 = im2double(J);
K1 = K1 + J1;
end
K1= K1/5 ;
for i = 1 : 50
J = imnoise(X, 'gaussian', 0, 0.02); J2 = im2double(J);
K2 = K2 + J2;
end
K2= K2/50 ;
for i = 1 : 500
J = imnoise(X, 'gaussian', 0, 0.02); J3 = im2double(J);
K3= K3 + J3;
end
K3= K3/5 ; %求图像的平均
figure;
subplot(2,2,1)
imshow(K1)
title('5副相加求平均的图像');
subplot(2,2,2)
imshow(K2)
title('50副相加求平均的图像');
subplot(2,2,3)
imshow(K3)
title('500副相加求平均的图像');
由图可知,50副加随机噪声的图相加求平均结果最佳。
6
%实验六
clc;
clear all;
close all;
X=imread('D:\matleb\bin\exp1_img\cat1.jpg'); J=imread('D:\matleb\bin\exp1_img\cat2.jpg'); J1=imresize(J,[240,220]);
K1=imadd(X,J1);
K2=imsubtract(X,J1);
K3=immultiply(X,J1);
subplot(2,3,1)
imshow(X)
title('cat1原图');
subplot(2,3,2)
imshow(J)
title('cat2原图');
subplot(2,3,3)
imshow(J1)
title('cat2缩放');
subplot(2,3,4)
imshow(K1)
title('相加'); subplot(2,3,5) imshow(K2)
title('相减'); subplot(2,3,6) imshow(K3)
title('相乘');。