2023年数字图像处理实验总结 数字图像处理综合实验题目(通用五篇)
总结是对过去一定时期的工作、学习或思想情况进行回顾、分析,并做出客观评价的书面材料,它可使零星的、肤浅的、表面的感性认知上升到全面的、系统的、本质的理性认识上来,让我们一起认真地写一份总结吧。写总结的时候需要注意什么呢?有哪些格式需要注意呢?这里给大家分享一些最新的总结书范文,方便大家学习。
数字图像处理实验总结 数字图像处理综合实验题目篇一
一、产生右图所示图像 f1(m,n),其中图像大小为256×256,中间亮条为128×32,暗处=0,亮处=100。对其进行 fft:
1、屏显示原图 f1(m,n)和fft(f1)的幅度谱图;
2、令f2(m,n)=(-1)^(m+n)*f1(m,n),重复以上过程,比较二者幅度谱的异同,简述理由;
3、若将f2(m,n)顺时针旋转 90 度得到f3(m,n),试显示 fft(f3)的幅度谱,并与 fft(f2)的幅度谱进行比较;
4、若将f1(m,n)顺时针旋转 90 度得到f4(m,n),令f5(m,n)=f1(m,n)+f4(m,n),试显示 fft(f5)的幅度谱,并指出其与 fft(f1)和fft(f4)的关系;
5、若令f6(m,n)=f2(m,n)+f3(m,n),试显示 fft(f6)的幅度谱,并指出其与 fft(f 2)和fft(f3)的关系,比较 fft(f6)和fft(f5)的幅度谱。
代码
f1=zeros(256,256);
for i =64:1:191 for j = 112:1:143 f1(i,j)= 100;
end
end
f2 = fft2(f1);
%f2(m,n)= f3
f3 =((-1)^(i+j))*f1;f4 = fft2(f3);
%f3(m,n)= f5
f5 = imrotate(f3,90,'bilinear');f6 = fft2(f5);
%f4(m,n)= f7
f7 = imrotate(f1,90,'bilinear');f8 = fft2(f7);
%f5(m,n)= f8 f9 = f1 + f7;f10 = fft2(f9);
%f6(m,n)= f2(m,n)+f3(m,n)f11 = f3 + f5;f12 = fft2(f11);
figure(1)subplot(1,2,1);imshow(abs(f1));title('原图f1');subplot(1,2,2);imshow(abs(f2));title('幅度谱fft2(f1)');figure(2)subplot(2,2,1)imshow(abs(f1));title('原图f1')subplot(2,2,2)imshow(abs(f2));title('幅度谱fft2(f1)');subplot(2,2,3);imshow(abs(f3))title('变换谱f2');subplot(2,2,4);imshow(abs(f4));title('幅度谱fft2(f2)');figure(3)subplot(2,2,1)imshow(abs(f3))title('变换谱f2');subplot(2,2,2);imshow(abs(f4));title('幅度谱fft2(f2)');subplot(2,2,3);imshow(abs(f5))title('变换谱f3');subplot(2,2,4);imshow(abs(f6));title('幅度谱fft2(f3)');figure(4)subplot(3,2,1);imshow(f7);
title('f1旋转图f4');subplot(3,2,2);imshow(abs(f8));title('幅度谱fft2(f4)');subplot(3,2,3);imshow(f9);
title('f5(m,n)=f1+f4');subplot(3,2,4);imshow(abs(f10));title('幅度谱fft2(f5)');subplot(3,2,5)imshow(abs(f1));title('原图f1');subplot(3,2,6);imshow(abs(f2));title('幅度谱fft2(f1)');figure(5)subplot(3,2,1)imshow(abs(f3))title('变换谱f2');subplot(3,2,2);imshow(abs(f4));title('幅度谱fft2(f2)');subplot(3,2,3);imshow(abs(f5))title('变换谱f3');subplot(3,2,4);imshow(abs(f6));title('幅度谱fft2(f3)');subplot(3,2,5)imshow(abs(f11))title('变换谱f6=f2+f3');subplot(3,2,6);imshow(abs(f12));title('幅度谱fft2(f6)');
figure(6)subplot(2,2,1);imshow(f9);
title('f5(m,n)=f1+f4');subplot(2,2,2);imshow(abs(f10));title('幅度谱fft2(f5)');subplot(2,2,3)imshow(abs(f11))
title('变换谱f6(m,n)=f2+f3');subplot(2,2,4);imshow(abs(f12));title('幅度谱fft2(f6)');
结果
分析
2、f2(m,n)与f1(m,n)幅度值相同,f2(m,n)=(-1)^(m+n)*f1(m,n)中,并未改变幅值。
3、fft(f2)比fft(f3)幅值大。
4、f5=f1+f4,即幅值相加。
5、f6=f2+f3,即幅值相加。
二、产生教材 104 页题图 4.18(右图)所示的二值图像(白为1,黑为0),编程实现习题4.18 所要求的处理(3*3 的平均滤波和中值滤波)功能(图像四周边界不考虑,处理结果按四舍五入仍取(0或1),显示处理前后的图像,比较其异同。
代码
i=[ 1,0,1,0,1,0,1,0;0,1,0,1,0,1,0,1;1,0,1,0,1,0,1,0;0,1,0,1,0,1,0,1;1,0,1,0,1,0,1,0;0,1,0,1,0,1,0,1;1,0,1,0,1,0,1,0;0,1,0,1,0,1,0,1;];j=imhist(i,2);
k=filter2(fspecial('average',3),i);k1=round(k);j1=imhist(k1,2);k2=medfilt2(i);j2=imhist(k2,2);
figure(1)subplot(2,2,1)imshow(i);title('原图像');subplot(2,2,2)imshow(j);
title('原图像直方图');subplot(2,2,3)imshow(k1);
title('3*3领域平均');subplot(2,2,4)imshow(j1);
title('领域平均图像直方图')figure(2)subplot(2,2,1)imshow(i);title('原图像');subplot(2,2,2)imshow(j);
title('原图像直方图');subplot(2,2,3)imshow(k2);title('中值滤波');subplot(2,2,4)imshow(j2);
title('中值滤波图像直方图')
结果
三、产生教材 104 页题图 4.16 所示的灰度图像(白为255,黑为0),分别加入高斯白噪声和椒盐噪声,再分别进行 3´ 3 的平均滤波和中值滤波,显示原图像、加噪图像和滤波结果图像,并比较四种滤波结果。
代码
f=zeros(256,256);for i =23:1:23
3for j=28:1:35 f(i,j)=255;
end
for j=52:1:59 f(i,j)=255;
end
for j=76:1:83 f(i,j)=255;
end
for j=100:1:107 f(i,j)=255;
end
for j=124:1:131 f(i,j)=255;
end
for j=148:1:155 f(i,j)=255;
end
for j=172:1:179 f(i,j)=255;
end
for j=196:1:203 f(i,j)=255;
end
for j=220:1:227 f(i,j)=255;
end end
g=imnoise(f,'gaussian',0.2);s=imnoise(f,'salt & pepper',0.2);k1=filter2(fspecial('average',3),g);g1=round(k1);g2=medfilt2(g);
k2=filter2(fspecial('average',3),s);s1=round(k2);s2=medfilt2(s);
figure(1)imshow(f)
title('ô-ê¼í¼ïñ');figure(2)subplot(3,2,1)imshow(g)
title('¸ßë¹í¼ïñ');subplot(3,2,2)imshow(s)
title('½·ñîí¼ïñ');subplot(3,2,3)imshow(g1)
title('æ½¾ùâ벨¸ßë¹í¼ïñ');subplot(3,2,5)imshow(g2)
title('öðöµâ벨¸ßë¹í¼ïñ');subplot(3,2,4)imshow(s1)
title('æ½¾ùâ벨½·ñîí¼ïñ');subplot(3,2,6)imshow(s2)
title('öðöµâ벨½·ñîí¼ïñ');
结果
四、对某一灰度图像,进行如下处理:
(1)分别利用 roberts、prewitt和sobel 边缘检测算子进行边缘检测;
(2)将roberts、prewitt和sobel 边缘检测算子修改为锐化算子,对原图像进行锐化,同屏显示原图像、边缘检测结果和锐化后图像,说明三者之间的关系。
代码
f1=imread('c:');f2=rgb2gray(f1);k1=edge(f2,'roberts');k2=edge(f2,'prewitt');k3=edge(f2,'sobel');
k4=filter2(fspecial('prewitt'),f2);k5=filter2(fspecial('prewitt'),f2);k6=filter2(fspecial('sobel'),f2);
figure(1)subplot(4,2,1)imshow(f1);title('yuanshi');subplot(4,2,2)imshow(f2);title('huidu');subplot(4,2,3)imshow(k1);title('roberts');subplot(4,2,5)imshow(k2);title('prewitt');subplot(4,2,7)imshow(k3);title('sobel');subplot(4,2,4)imshow(k4);title('log');subplot(4,2,6)imshow(k5);title('prewitt');subplot(4,2,8)imshow(k6);title('sobel');
结果
二值化。
五、编程实现教材 214 页所给图像门限化分割的迭代阈值算法,实现对某一灰度图像的代码
f1=imread('c:');f2=rgb2gray(f1);f3=f2;
zm=max(f2(:));zi=min(f2(:));k=2;
t(k)=(zm+zi)/2;while t(k)~=t(k-1);r1=find(f2<=t(k));r2=find(f2>t(k));k=k+1;
t(k)=(mean(f2(r1))+mean(f2(r2)))/2;end
r3=find(f3<=t(k));r4=find(f3>t(k));f3(r3)=0;f3(r4)=255;
figure(1)subplot(221)imshow(f1)title('原始图像');subplot(222)imshow(f2)title('灰度图像');subplot(223)imshow(f3)
title('迭代阈值算法二值化');
结果
心得体会
通过此次作业让我明白了很多,实际操作起来往往比理论所想的要复杂很多。当然,在课设的进行过程中,我还是遇到了不少问题。例如,起初由于我对句柄使用以及一些函数使用的不恰当。随着课设的进行,对matlab的的熟悉度逐步加深。
总体来说,此次的课程设计,还是较为满意的。它不但鞭策着我去巩固matlab的基础理论知识,还提高了我对matlab的实际操作运用,使得理论与实践相结合,为进一步学习matlab打下坚实的基础;同时,在实践的工程中,也让我体会到一种努力付出并得到回报的满足感觉。
数字图像处理实验总结 数字图像处理综合实验题目篇二
数字图像处理上机作业
数字图像处理上机作业
1.产生右图所示亮块图像 f1(x,y)(128×128大小,暗处=0,亮处=255),对其进行fft:
(1)同屏显示原图f1和fft(f1)的幅度谱图;
图像:
(2)若令f2(x,y)=(-1)f1(x,y),重复以上过程,比较二者幅度谱的异同,简述理由;(3)若将f2(x,y)顺时针旋转45度得到f3(x,y),试显示fft(f3)的幅度谱,并与fft(f2)的幅度谱进行比较。
x+y
结论:不同点:f2的频谱是对f1频谱的移位,它时f1的频谱从原点(0,0)移到了中心(64,64),而得到了一个完整的频谱。
相同点:频谱的实质没有改变,幅度等都没有发生变化。
(3)若将f2(x,y)顺时针旋转45度得到f3(x,y),试显示fft(f3)的幅度谱,并与fft(f2)的幅度谱进行比较。
源程序:f1=zeros(128,128);for i=38:1:90 for j=58:1:70 f1(i,j)=255;end end figure(1)subplot(1,2,1);imshow(f1);subplot(1,2,2);imshow(fft2(f1));% f2(x,y)=(-1)^(x+y)* f1(x,y)for i=1:1:128 for j=1:1:128 f2(i,j)=(-1)^(i+j)*f1(i,j);end end figure(2);subplot(1,3,1);imshow(f2);f3=imrotate(f2,-45,'bilinear');%将f2顺时针旋转45度 subplot(1,3,2);imshow(fft2(f2));%显示f2的频谱 subplot(1,3,3);imshow(fft2(f3));%显示f3的频谱
结论:均衡化后的直方图并非完全均匀分布的原因:因为图像的像素个数和灰度等级均为离散值,而且均衡化后使灰度级并归。
2.对256256大小、256级灰度的数字图像lena进行频域的理想低通、高通滤波,同屏显示原图、幅度谱图和低通、高通滤波的结果图。
源代码: figure(1);fid=fopen('d:','r');data=(fread(fid,[256,256],'uint8'))';subplot(2,2,1)imagesc(data);colormap(gray);title('lena','color','r');subplot(2,2,2);imshow(fft2(data));s=fftshift(fft2(data));[m,n]=size(s);%分别返回s的行数到m中,列数到n中 n=2;%对n赋初值 %glpf滤波,d0=5,15,30(程序中以d0=30为例)d0=30;%初始化d0 n1=floor(m/2);%对m/2进行取整 n2=floor(n/2);%对n/2进行取整 for i=1:m for j=1:n d=sqrt((i-n1)^2+(j-n2)^2);%点(i,j)到傅立叶变换中心的距离 h=1*exp(-1/2*(d^2/d0^2));%glpf滤波函数
s(i,j)=h*s(i,j);%glpf滤波后的频域表示 end end s=ifftshift(s);%对s进行反fft移动
%对s进行二维反离散的fourier变换后,取复数的实部转化为无符号8位整数 s=uint8(real(ifft2(s)));subplot(2,2,3);%创建图形图像对象 imshow(s);p=fftshift(fft2(data));[m,n]=size(p);%分别返回p的行数到m中,列数到n中 n=2;%对n赋初值 %glpf滤波d1=30 d1=30;%初始化d1 n3=floor(m/2);%对m/2进行取整 n4=floor(n/2);%对n/2进行取整 for i=1:m for j=1:n dd=sqrt((i-n3)^2+(j-n4)^2);%点(i,j)到傅立叶变换中心的距离 h1=1-exp(-1/2*(dd^2/d1^2));%ghpf滤波函数
p(i,j)=h1*p(i,j);%ghpf滤波后的频域表示 end end p=ifftshift(p);%对p进行反fft移动
%对s进行二维反离散的fourier变换后,取复数的实部转化为无符号8位整数 p=uint8(real(ifft2(p)));subplot(2,2,4);%创建图形图像对象 imshow(p);
3.对给定的两种128128、256级灰度的数字图像((指纹图)(显微医学图像)进行如下处理:
(1)对原图像进行直方图均衡化处理,同屏显示处理前后图像及其直方图,比较异同,并回答为什么数字图像均衡化后其直方图并非完全均匀分布。
异同:由于原图像中目标物的灰度主要集中于低亮度部分,而且象素总数比较多,经过直方图均衡后,目标物的所占的灰度等级得到扩展,对比度加强,使整个图像得到增强。
数字图像均衡化后其直方图并非完全均匀分布的原因:由于原图像中目标物的灰度主要集中于低亮度部分,而且象素总数比较少,而所占的灰度等级比较多,因此图像的对比度比较好,亮度比较大,整体图像清晰。经过直方图均衡后,目标物的所占的灰度等级被压缩,对比度减弱,反而使目标物变的难以辨认。
数字图像均衡化后,其直方图并非完全均匀分布,这是因为图像的象素个数和灰度等级均为离散值;而且均衡化使灰度级并归,因此,均衡化后,其直方图并非完全均匀分布。
源代码: figure(1);fid=fopen('d:','r');
%打开无格式文件 data1=(fread(fid,[128,128],'uint8'))';%将打开的文件读入到data1 subplot(4,2,1);
%将figure(1)分成4*2的8个子窗口, data11=uint8(data1);imshow(data11);%图象显示
title('cell','color','b');
%加标题 subplot(4,2,2);title('原图像直方图');imhist(data11);subplot(4,2,3);
%取第二个子窗口
data2=uint8(data1);%将灰度图象转换成uint8格式 b=histeq(data2);
%直方图均衡化
imshow(b,256);
%显示均衡化图象,256可缺省 title('均衡化','color','b');
subplot(4,2,4);imhist(b);title('均衡化后图像直方图');subplot(4,2,5)fid=fopen('d:','r');%打开无格式文件
data3=(fread(fid,[128,128],'uint8'))';%将打开的文件读入到data3 data31=uint8(data3);
%将灰度图象转换成uint8格式 imshow(data31);
%显示灰度图象 title('fing','color','b');subplot(4,2,6)imhist(data31);title('原图像直方图');subplot(4,2,7);
data4=uint8(data3);%将灰度图象转换成uint8格式 d=histeq(data4);
%直方图均衡化
imshow(d,256);
%显示均衡化图象,256可缺省 title('均衡化','color','b');
subplot(4,2,8);imhist(d);title('均衡化后原图像直方图');(2)对原图像加入高斯噪声,用4-邻域平均法平滑加噪声图像(图像四周边界不处理,下同),同屏显示原图像、加噪图像和处理后的图像。
① 不加门限;
② 加门限 t2f(m,n),(其中f(m,n)
1n2f(i,j))
ij
源代码: % cell figure(2);fid=fopen('d:','r');
%打开无格式文件
data1=(fread(fid,[128,128],'uint8'))';%将打开的文件读入到data1 i=uint8(data1);i1=imnoise(i,'gaussian');%加乘性噪声 h1=[0 1 0;1 0 1;0 1 0]/4;%4×4领域模板 j=imfilter(i,h1);%领域平均
subplot(2,4,1),imshow(i);%显示图像i title('原图像');subplot(2,4,2),imshow(i1);title('加噪声后图像');subplot(2,4,3),imshow(j);
%不加门限平滑 title('不加门限平滑后图像');%加门限后滤波
t= 2*sum(i1(:))/128^2;im_t = zeros(128,128);for i = 1:128
for j = 1:128
if abs(i1(i,j)j(i,j))>t
im_t(i,j)= j(i,j);
else
im_t(i,j)= i1(i,j);
end
end end subplot(2,4,8);imshow(im_t);title('加门限后');4.(1)用laplacian锐化算子(分1和2两种情况)对256256大小、256级灰度的数字图像lena进行锐化处理,显示处理前、后图像。
源代码:
%laplacian算子锐化
i=imread('d:');% 读入原图像 figure(1);subplot(1,3,1);imshow(i);title('原始图像');l=fspecial('laplacian');l1=[0-1 0;-1 5-1;0-1 0];l2=[0-2 0;-2 9-2;0-2 0];lp1=imfilter(i,l1,'replicate');% α=1时的拉普拉斯算子 lp2=imfilter(i,l2,'replicate');% α=2时的拉普拉斯算子
subplot(1,3,2);imshow(lp1);title('laplacian算子α=1锐化图像');subplot(1,3,3);imshow(lp2);title('laplacian算子α=2锐化图像');
(2)若令
g1(m,n)f(m,n)2f,g2(m,n)4f(m,n)[f(m1,n)f(m1,n)f(m,n1)f(m,n1)
f(m,n1)f(m,n1)]
则回答如下问题:
① f(m,n)、g1(m,n)和g2(m,n)之间有何关系? ② g2(m,n)代表图像中的哪些信息? ③ 由此得出图像锐化的实质是什么?
①因为g2(m,n)2f(m,n),所以f(m,n)、g1(m,n)和g2(m,n)之间有以下关系:
g1(m,n)f(m,n)g2(m,n)
②g2(m,n)代表了原图像中的二阶梯度信息;g1(m,n)是边缘增强后的数字图像; ③由此可以得出:图像锐化的实质是将原图像与梯度信息叠加(梯度信息所占的比例由,相当于对目标物的边缘进行了增强。的大小决定,值越大则梯度信息所占的比例越大)
5.分别利用roberts、prewitt和sobel边缘检测算子,对256256大小、256级灰度的数字图像lena进行边缘检测,显示处理前、后图像。图像:
源代码:
i=imread('d:');% 读入原图像 figure(1)%roberts梯度法锐化
subplot(2,2,1);imshow(i);title('原始图像');j=double(i);[ix,iy]=gradient(j);%计算梯度 a=sqrt(ix.*ix+iy.*iy);subplot(2,2,2);imshow(a,[]);title('roberts梯度法锐化图像');%prewitt算子锐化
s=imfilter(i,fspecial('prewitt'));subplot(2,2,3);imshow(s);title('prewitt算子锐化图像');%sobel算子锐化
s=imfilter(i,fspecial('sobel'));subplot(2,2,4);imshow(s);title('sobel算子锐化图像');
6、学习数字图像处理课程的心得体会,该课程在哪些方面需要改进,对该课程或者任课老师有哪些意见或建议。
通过对数字图像处理课程的认真学习,在课堂听课和课余实践中了解了数字图像的基础知识,培养了一定的软件编程能力,在努力完成课堂作业的同时,发现了对图像方面的兴趣。老师认真负责,布置合理的作业。但希望能够通过更加丰富的授课方式,提高更多人学习该门课程的兴趣和主动性。也同样希望老师能够加强点名和作业的验收,督促学生更加认真的学习知识。
数字图像处理实验总结 数字图像处理综合实验题目篇三
练习一 常用matlab图像处理命令
一、练习目的
1、熟悉并掌握matlab工具的使用;
2、实现图像的读取、显示、代数运算和简单变换。
二、练习环境
windows操作系统
matlab 6.5或以上应用软件
三、练习内容
1、图像文件的读写
(1)imread函数用来实现图像文件的读取。输入以下程序:
a=imread('文件名.扩展名');%用imread函数来读入图像 注:设置路径 imshow(a);%用imshow函数来显示图像 得到的结果如图:
(2)imfinfo函数用来查询图像文件信息。输入以下程序:
info=imfinfo('文件名.扩展名');% 用imfinfo函数查询图像文件信息 得到: info =
filename: '文件名.扩展名'
(4)imshow函数用来显示图像。
刚才介绍imread函数时已使用此函数。
(5)colorbar函数将颜色条添加到坐标轴对象中。输入以下程序:
rgb=imread('***');%图像读入
i=rgb2gray(rgb);%把rgb图像转换成灰度图像
imshow(i),colorbar('vert')% 将颜色条添加到坐标轴对象中
得到如图:
2、图像处理的基本操作
一、图像代数运算
(1)imadd函数实现两幅图像的相加或者给一幅图像加上一个常数。给图像每个像素都增加亮度的程序如下: i=imread('***');j=imadd(i,100);%给图像增加亮度 subplot(1,2,1),imshow(i)%填充 subplot(1,2,2),imshow(j)结果如图5。
(2)imsubtract函数实现从一幅图像中减去一个常数。输入以下程序实现从一幅图像中减去一个常数:
(3)immultiply实现两幅图像的相乘或者一幅图像的亮度缩放(图像乘以小于1或大于1的参数,比较效果)。输入以下程序:
(4)imspanide函数实现两幅图像的除法或一幅图像的亮度缩放。输入以下程序:
二、图像的空间域操作
(1)imrotate函数实现图像的旋转。输入以下程序: i=imread('***');j=imrotate(i,45);%对图像进行旋转 subplot(1,2,1),imshow(i);subplot(1,2,2),imshow(j);得到图:
练习二 数字图像处理的基本操作
一、练习目的
1、练习使用matlab工具进行数字图像处理;
2、实现图像的边缘提取、滤波、直方图修正等操作。
二、练习环境
windows操作系统
matlab 6.5或以上应用软件
三、练习内容
(1)imresize函数实现图像的缩放。输入以下程序:
j=imread('文件名.扩展名');x1=imresize(j,2);%对图像进行缩放 figure,imshow(j)结果如图
(2)imcrop函数实现图像的剪切。输入以下程序: i=imread('***');i2=imcrop(i);%对图像进行剪切 subplot(填充),imshow(填充);subplot(填充),imshow(填充);如图:
图像变换
(1)fft2函数和ifft2函数分别是计算二维的fft和反变换。输入以下程序: f=zeros(100,100);f(20:70,40:60)=1;imshow(f);f=fft2(f);% 计算二维的fft f2=log(abs(f));%对幅值取对数 imshow(f2),colorbar
(2)dct2函数采用基于fft的算法,用于实现较大输入矩阵的离散余弦变换。与之对应,idct2函数实现图像的二维逆离散余弦变换 输入以下程序: rgb=imread('***');i=rgb2gray(rgb);j=dct2(i);% 对i进行离散余弦变换 imshow(log(abs(j))),colorbar j(abs(j)<10)=0;k=idct2(j);% 图像的二维逆离散余弦变换 figure,imshow(i);figure,imshow(k,[0,255])得到如图:
(3)edge函数用于提取图像的边缘。输入以下程序:
rgb=imread('');i=rgb2gray(rgb);bw=edge(i);% 提取图像的边缘 imshow(i),figure,imshow(bw);得到图
图像增强、分割和编码
(1)imhist函数产生图像的直方图。a=imread('');%读入图像
b=rgb2gray(a);%把rgb图像转化成灰度图像 imshow(b);%显示灰度图像
imhist(b)%显示灰度图像的直方图 得到图
(2)histeq函数用于对图像的直方图均衡化。接上面程序:
c=histeq(b);%对图像b进行均衡化 imshow(c);%显示图像
imhist(c);%得到均衡化后的灰度直方图 得到如图
filter2函数实现均值滤波。输入以下程序:
a=imread('');i=rgb2gray(a);imshow(i);k1=filter2(fspecial('average',3),i)/255;% 33的均值滤波 k2=补充;
% 55的均值滤波 k3=补充;
% 77的均值滤波 figure,imshow(k1);figure,imshow(k2);figure,imshow(k3);得到图
(5)medfilt2函数实现中值滤波。输入以下程序:
自查函数如何使用,并编程: 结果如图:
练习三
图像采样及图像类型转换
一、练习目的
1、熟悉并掌握matlab图像处理工具箱的使用;
2、试对自选图像分别进行4和16倍剪采样,查看其剪采样效果
3、将所给图,转换成256级灰度图像,8级灰度图像和2值图像
二、练习环境
matlab 6.5或以上版本、win xp或以上计算机
三、练习内容
使用matlab,对图像进行减采样。
a = imread('***.jpg');b = rgb2gray(a);[wid,hei]=size(b);%4倍减抽样
quartimg = zeros(wid/2+1,hei/2+1);i1 = 1;j1 = 1;for i=1:2:wid
for j=1:2:hei
quartimg(i1,j1)= b(i,j);
j1 = j1 + 1;
end i1 = i1 + 1;j1 = 1;end figure
imshow(uint8(quartimg))练习结果如图
%16倍减抽样
编程并运行显示图像结果:
图像类型
1、练习内容
试将自选图,转换成256级灰度图像,8级灰度图像和2值图像
2、练习方法及程序
使用matlab,进行图像类型变换。
a = imread('***.jpg');b = rgb2gray(a);
figure imshow(b)[wid,hei]=size(b);img8 = zeros(wid,hei);img2 = zeros(wid,hei);for i=1:wid
for j=1:hei
img8(i,j)= floor(b(i,j)/32);%得到8级灰度图像
end end figure
imshow(uint8(img8),[0,7])for i=1:wid
for j=1:hei
补充;end end figure
imshow(uint8(img8),[0,2])%得到2值图像
练习结果如图
练习四
数字图像的空间域处理
一、练习目的
1、熟悉并掌握matlab图像处理工具箱的使用;
2、熟悉图像相加的方法及效果
3、熟悉图像灰度扩展的方法及效果
4、熟悉图像缩放、旋转的方法及效果
二、练习环境
matlab 6.5或以上版本、win xp或以上计算机
三、练习内容 part 1(1)选择一幅图像***.jpg,设置输入输出变换的灰度级范围,a=0.3, b=0.6, c=0.1, d=0.9;
(2)设置非线性扩展函数的参数c=2;
(3)采用灰度倒置变换函数s=255-r进行图像变换;
(4)设置二值化图像的阈值,分别为level=0.4,level=0.7参考程序如下: i=imread('***.jpg');figure;subplot(1,3,1);imshow(i);title('原图');j=imadjust(i,[0.3;0.6],[0.1;0.9]);%设置灰度变换的范围 subplot(1,3,2);imshow(j);title('线性扩展');i1=double(i);%将图像转换为double类型 i2=i1/255;%归一化此图像 c=2;k=c*log(1+i2);%求图像的对数变换 subplot(1,3,3);imshow(k);title('非线性扩展');m=255-i;%将此图像取反 figure;subplot(1,3,1);imshow(m);title('灰度倒置');n1=im2bw(i,0.4);%将此图像二值化,阈值为0.4 n2=im2bw(i,0.7);%将此图像二值化,阈值为0.7 subplot(1,3,2);imshow(n1);title('二值化阈值0.4');subplot(1,3,3);imshow(n2);title('二值化阈值0.7');练习结果与分析
(1)练习结果如图3.7所示。
part 2 读取一幅图片,如***.jpg,设置图像旋转的角度分别为450和900,采用图形旋转函数imrotate对图像进行旋转。程序如下,结果如图3.10。
i=imread('');j=imrotate(i,45);%图像进行逆时针旋转,默认采用最近邻法进行插值处理 k=imrotate(i,90);%默认旋转出界的部分不被截出 subplot(1,3,1);imshow(i);subplot(1,3,2);imshow(j);subplot(1,3,3);imshow(k);练习结果与分析
(1)练习结果如图3.10所示。
练习五 数字图像的频域处理
一、练习目的
1、熟悉并掌握matlab工具的使用;
2、实现图像离散傅里叶变换并观察效果
3、实现图像离散余弦变换并观察效果
二、练习环境
windows操作系统 matlab 6.5或以上应用软件
三、练习内容 part 1 选取一幅图像,进行离散傅里叶变换,再对其分别进行x轴与y轴上的平移,得其离散傅里叶变换,观察三幅结果图。
i=imread('');figure(1)imshow(real(i));i=i(:,:,3);ffti=fft2(i);sffti=fftshift(ffti);%求离散傅里叶频谱
%对原始图像进行二维傅里叶变换,并将其坐标原点移到频谱图中央位置
rrfdp1=real(sffti);iifdp1=imag(sffti);a=sqrt(rrfdp1.^2+iifdp1.^2);a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;
figure(2)imshow(real(a));练习结果与分析
part 2 选取一幅图像,进行离散傅里叶变换,再对其进行一定角度的旋转,进行离散傅里叶变换。
%构造原始图像
i = zeros(256,256);
i(88:168,124:132)= 1;%图像范围是256*256,前一值是纵向比,后一值是横向比 imshow(i)
%求原始图像的傅里叶频谱
j = fft2(i);f = abs(j);j1 = fftshift(f);figure imshow(j1,[5 50])
%对原始图像进行旋转
j = imrotate(i,90,'bilinear','crop');figure imshow(j)%求旋转后图像的傅里叶频谱
j1 = fft2(j);f = abs(j1);j2 = fftshift(f);figure imshow(j2,[5 50])练习结果与分析
1) 3 选取一幅图像,进行离散余弦变换,并对其进行离散余弦反变换,观察其结果。
%对***.jpg文件计算二维dct变换 rgb = imread('***.jpg ');figure(1)imshow(rgb)i = rgb2gray(rgb);%真彩色图像转换成灰度图像 j = dct2(i);%计算二维dct变换 figure(2)imshow(log(abs(j)),[])%图像大部分能量集中在上左角处 figure(3);j(abs(j)< 10)= 0;%把变换矩阵中小于10的值置换为0,然后用idct2重构图像 k = idct2(j)/255;imshow(k)练习结果与分析
数字图像处理实验总结 数字图像处理综合实验题目篇四
一、实验目的及内容 内容: 灰度变换和空间滤波 1.灰度变换
利用imadjust函数(可结合stretchlim函数)对图像对比度拉伸 2.直方图绘制、均衡和匹配
利用imhist,histeq函数完成图2.8及图2.11的功能 3.空间滤波
线性空间滤波:
利用滤波函数imfilter函数完成图2.16中b,c,d,e的图像平滑效果
利用fspecial函数生成average,disk,gaussian滤波器完成图像的平滑效果
利用fspecial函数生成prewitt, sobel,laplacian滤波器完成图像的锐化效果
非线性空间滤波
利用中值滤波函数medfilt2去除椒盐噪声
二、实验原理
①、函数imadjust是一个基本的图像处理工具箱函数,用于对灰度级图像进行灰度变换。
g=imadjust(f,[low_in high_in],[low_out high_out],gamma),该函数将图像f中的灰度值映射为图像g中的新值,即将low_in至high_in之间的值映射到low_out至high_out之间的值。
②、函数imhist是处理图像直方图的核心函数
h=imhist(f,b),其中f为输入图像,h为其直方图,b是用来形成直方图的“容器”的数目。
③、函数histeq是实现直方图匹配的函数
g=histeq(f,hspec),其中f为输入图像,hspec为规定的直方图,g为输出图像,输出图像的直方图近似于指定的直方图hspec。
④、函数imfilter用来实现线性空间滤波
-1-g=imfilter(f,w,filtering_mode,boundary_options,size_options),其中f为输入图像,w为滤波模板,g为滤波后的结果。
用于平滑的滤波器有:’average’,’disk’,’gaussian’ 用于锐化的滤波器有:’laplacian’,’prewit’,’sobel’
三、实验源代码及结果
1、灰度变换、直方图绘制、均衡和匹配 f=imread('')%读取图片 subplot(2,4,1)imshow(f),title('原图')%显示原图
f1=imadjust(f,[0.2 0.5],[ 0 1])%将图片的灰度级别在0.2至0.5之间的部分拉伸
至0到1之间
subplot(2,4,2)imshow(f1),title('灰度拉伸之后')%显示灰度拉伸之后的图片 subplot(2,4,3)imhist(f),title('原图直方图')f2=histeq(f,128)%进行直方图均衡化,灰度级数设为128 subplot(2,4,4)imhist(f2),title('均衡化')%显示均衡化之后的直方图 g=imread('')%图像
h=imhist(g)%图像的直方图赋值给向量h subplot(2,4,5)imhist(g),title('规定的直方图')f3=histeq(f,h)%进行直方图匹配 subplot(2,4,6)imshow(f3),title('直方图匹配')运行结果
2、线性空间滤波
a=imread('')%图像 figure,subplot(2,3,1)imshow(a),title('原图')w=1/(31*31)*ones(31)%生成31*31的全为1的矩阵,命名为w a1=imfilter(a,w)%利用imfilter函数进行滤波 subplot(2,3,2)imshow(a1)a2=imfilter(a,w,'replicate')%图像的大小通过复制图像边界外的值来扩展 subplot(2,3,3)imshow(a2)a3=imfilter(a,w,'symmetric')%图像的大小通过边界镜像反射来扩展 subplot(2,3,4)
-3-imshow(a3)a4=imfilter(a,w,'circular')%图像的大小通过将图像处理为二维周期函数的一个周期来扩展
subplot(2,3,5)imshow(a4)aa=im2uint8(a)a5=imfilter(aa,w,'replicate')subplot(2,3,6)imshow(a5)
b=imread('')figure,subplot(2,2,1)imshow(b),title('原图')w1=fspecial('average',[4])%生成average平滑滤波器 b1=imfilter(b,w1)%进行滤波 subplot(2,2,2)imshow(b1),title('average')w2=fspecial('disk',5)%生成disk平滑滤波器 b2=imfilter(b,w2)subplot(2,2,3)imshow(b2),title('disk')w3=fspecial('gaussian',[3 3],0.5)%生成gaussian平滑滤波器 b3=imfilter(b,w3)
-4-subplot(2,2,4)imshow(b3),title('gaussian')
c=imread('')figure,subplot(2,2,1)imshow(c),title('原图')w4=fspecial('prewitt')%生成prewitt锐化滤波器 c1=imfilter(c,w4)subplot(2,2,2)imshow(c1),title('prewitt')w5=fspecial('sobel')%生成sobel锐化滤波器 c2=imfilter(c,w5)subplot(2,2,3)imshow(c2),title('sobel')w6=fspecial('laplacian')%生成laplacian锐化滤波器 c3=imfilter(c,w6)subplot(2,2,4)imshow(c3),title('laplacian')运行结果
3、非线性空间滤波
d=imread('')%读取图像,赋值给d d1=imnoise(d,'salt & pepper',0.3)%用imnoise函数对d生成椒盐噪声 figure,subplot(1,2,1)imshow(d1),title('被椒盐噪声污染的图像')d2=medfilt2(d1)&用中值滤波器进行滤波 subplot(1,2,2)imshow(d2),title('去除椒盐噪声的图像')运行结果
四、实验总结(心得体会)
通过这次实验,首先我熟悉了matlab的基本操作,掌握了图像处理的基本操作,比如如何读一张图片进来、如何显示一张图片等等。这些都是最基本的操作。其次我知道了灰度变换的函数imadjust的使用,它是将选定的灰度级别范围变换为规定的范围,可以自由变换图像的灰度级别;还有掌握了如何画图像的直方图、将直方图均衡化等等。还学会了图像的滤波处理,通过函数imfilter进行滤波。常用的平滑滤波器有average,disk,gaussian、锐化滤波器有prewitt, sobel,laplacian。还学会了用中值滤波去除椒盐噪声。这些都是一些比较初级的函数,后面还有很多图像处理方法需要学习。
数字图像处理实验总结 数字图像处理综合实验题目篇五
实验报告
一、实验原理
1.调用imread函数将图像文件读入图像数组(矩阵)
a=imread(filename,fmt)2.调用imwrite函数将图像文件写入图像数组(矩阵)
imwrite(a,filename,fmt)3.调用imshow函数显示图像
imshow(i,n)
4.图像的灰度平均值。调用ave=mean2(i)计算图像的均值 5.协方差矩阵。调用cfg=cov(f,g)计算图像f和图像g的协方差矩阵 图像的灰度标准差。调用sd=std2(i)的灰度标准差 7.图像的相关系数。调用函数rfg=corr2(f,g)计算大小相等的两幅图像f和g的相关系数
二、图像及统计数据
原图像的平均灰度值= 77.5170
灰度标准差= 44.2095 灰度图像的平均灰度值= 74.4516
灰度标准差=37.1236 反白图像的平均灰度值= 180.5484
灰度标准差= 37.1236 灰度图像和反白图像的相关系数是
三、程序
i=imread('');subplot(2,2,1);imshow(i);j=rgb2gray(i);subplot(2,2,2);imshow(j);ave=mean2(j)ave =
74.4516 sd=std2(double(j))sd =
37.1236 s=size(j);all_white=255*ones(s(1),s(2));all_white_uint8=uint8(all_white);k=imsubtract(all_white_uint8,j);subplot(2,2,3);imshow(k);imwrite(k,'');
四、思考题
1.图像统计特征让我们更加了解图像的变换,使图像处理更加方便 2.五、心得体会
这次试验,我学会了使用marlab中的图像处理工具箱中的函数,对每个图像处理函数的功能都有了深入的认识。同时,我掌握了matlab的基本应用方法,对图像文件的读/写的方法有了初步认识。总之这次试验让我对matlab的图像处理有了一点学习,为更好地学习数字图像处理打下了一定的基础。