您好,欢迎访问三七文档
数字图像处理实验实验报告要求:实验报告应包含实验名称、实验内容、思想及原理、算法设计、代码设计及实现、实验结果及分析、结论等内容。实验结果必须包括原图像、结果图像和必要的数据图像。实验1直方图均衡化编码实现直方图均衡化算法(不能使用第三方直方图均衡化函数)。代码如下:a=imread('e:\b.jpg');%读取图像b=rgb2gray(a);%转化为灰度图像imshow(b);%显示原图c=histeq(b);%直方图均衡化subplot(121),imshow(a);subplot(122),imshow(c);%显示处理后的图像图像如下:实验2频率域滤波图像中含有周期性干扰,设计使用频率域分析方法检测和去除图像周期性干扰的算法(可以使用第三方傅里叶变换和反变换函数)。代码如下:%频率域滤波clc;closeall;f=imread('salt.bmp');f=im2double(f);F=fft2(double(f));%傅里叶变换F=fftshift(F);%将变换的原点移到频率矩形的中心[M,N]=size(f);%理想低通滤波D0=input('输入截止频率');h1=zeros(M,N);fori=1:Mforj=i:Nif(sqrt(((i-M/2)^2+(j-N/2)^2))D0)h1(i,j)=1;endendendG1=F.*hl;61=ifftshift(G1);g1=real(ifft2(G1));subplot(2,3,1);imshow(f);title('原图');subplot(2,3,2);imshow(g1);title('理想低通滤波’);%巴特沃斯低通滤波n=input('巴特沃斯滤波器的阶数n=');n1=fix(M/2);n2=fix(N/2);h2=zeros(M,N);fori=1:Mforj=1:Nd=sqrt((i-n1)^2+(j-n2)^2);h2=1./(1+(d./D0).^(2*n));endendG2=F.*h2;G2=ifftshift(G2);g2=real(ifft(G2));subplot(2,3,1);imshow(f);title('原图');subplot(2,3,4);imshow(g3);title('低通滤波');图像如下:原图巴特沃斯低通理想低通实验3彩色图像去噪对RGB彩色空间和HIS彩色空间去噪效果进行比较分析。按彩色数字图像获取过程对彩色图像添加噪声,在RGB和HIS彩色空间分别进行去噪,比较两者的差异并分析讨论。代码如下:canny边缘检测I=imread('lena.bmp');%读灰度图lena.bmp%Cannyedgedetectorth=[0.050.2];E=edge(I,'canny',th);E=uint8(255*(1-double(E)));figure('name','canny'),imshow(uint8(E),'truesize');sobel边缘检测I=imread('lena.bmp');%读灰度图lena.bmp%sobeledgedetectorE=edge(I,'sobel',0.08);E=uint8(255*(1-double(E)));figure('name','canny'),imshow(uint8(E),'truesize');RGB去噪声HIS去噪声区别:RGB彩色模型和CMY模型对硬件设备的实现是很理想的,而且RGB模型可以和人眼感受三原色的事实相匹配。但是很遗憾,这些颜色模型很难适应人对颜色的解释。HIS彩色空间正是为了适应人眼对颜色的感知和描述发展的颜色模型。它是开发基于彩色描述的图像处理方法的理想工具。实验4形态学图像处理设计和实现腐蚀、膨胀算法。并设计算法实现对二值图像中不同大小圆形区域的检测和提取(假设二值图像中只有圆形区域)。代码如下:f=imread('img8.tif');se=strel('disk',10);g=imerode(f,se);subplot(1,2,1),imshow(f),title('原图');subplot(1,2,2),imshow(g),title('腐蚀后');clearall;closeall;imagein=zeros(10,10);imagein(5:6,5:6)=1;[m,n]=size(imagein);imageout=zeros(m,n);fori=2:m-1forj=2:n-1t=sum(sum(imagein(i-1:i+1,j-1:j+1)));ift0imageout(i,j)=1;elseimageout(i,j)=0;endendendfigure;subplot(121);imshow(imagein);subplot(122);imshow(imageout);实验5图像分割找一幅现实世界的图像,设计算法将图像中某一特定物体区域分割出来。代码如下:clearall;closeall;G=imread('rabbit.png');figure();subplot(2,2,1);imshow(G);subplot(2,2,2);imhist(G);subplot(2,2,3);imhist(G);[h,x]=imhist(G);h=smooth(h,7);plot(x,h)%求出阈值Tdf1=diff(h);%一阶差分df2=diff(df1);%二阶差分[m,n]=size(df2);T=0;fori=1:mif(abs(df1(i+1))=0.15&&df2(i)0)T=x(i+2);%确定阈值break;endendG=im2bw(G,T/255);%转为二值图像subplot(2,2,4);imshow(G);
本文标题:数字图像处理实验
链接地址:https://www.777doc.com/doc-5684552 .html