1、数字图像采集与处理作业范文1. 用Matlab语言完成如下实验:1) 打开一个BMP文件2) 将其局部区域的灰度值进行改变 3) 另存为一个新的BMP文件pic1=imread(get.bmp);m,n=size(pic1);f=pic1(50:300,50:300);pic2=imadjust(f,0.5 0.75,);pic3=pic1;pic3(50:300,50:300)=pic2;imshow(pic1),figure,imshow(pic3)(1)原图像 (2)局部灰度改变后的图像2. Matlab编程实现图像傅里叶高通、低通滤波,给出算法原理及实现结果。原图像(1) 高通滤波I=
2、imread(get.bmp);I=rgb2gray(I);figure(1),imshow(I);title(原图像);s=fftshift(fft2(I); a,b=size(s);a0=round(a/2);b0=round(b/2);d=10;p=0.2;q=0.5;for i=1:a for j=1:b distance=sqrt(i-a0)2+(j-b0)2); if distance=d h=0; else h=1; end; s(i,j)=(p+q*h)*s(i,j); end;end;s=uint8(real(ifft2(ifftshift(s);figure(2);imsh
3、ow(s);title(高通滤波所得图像); (2) 低通滤波I=imread(get.bmp);I=rgb2gray(I);figure(1),imshow(I);title(原图像);s=fftshift(fft2(I);a,b=size(s);a0=round(a/2);b0=round(b/2);d=10;for i=1:a for j=1:b distance=sqrt(i-a0)2+(j-b0)2); if distance=d h=1; else h=0; end; s(i,j)=h*s(i,j); end;end;s=uint8(real(ifft2(ifftshift(s);
4、figure(2);imshow(s);title(低通滤波所得图像); 3. 找一幅曝光不足的灰度(或彩色)图像,用Matlab按照直方图均衡化的方法进行处理。clear all%一,图像的预处理,读入彩色图像将其灰度化PS=imread(get.BMP); %读入BMP彩色图像文件imshow(PS) %显示出来 figure NO 1title(输入的彩色BMP图像)imwrite(rgb2gray(PS),PicSampleGray.bmp);%将彩色图片灰度化并保存PS=rgb2gray(PS);%灰度化后的数据存入数组figure,imshow(PS)%显示灰度化后的图像,也是均衡
5、化前的样品figure NO 2title(灰度化后的图像)%二,绘制直方图m,n=size(PS); %测量图像尺寸参数GP=zeros(1,256);%预创建存放灰度出现概率的向量for k=0:255GP(k+1)=length(find(PS=k)/(m*n);%计算每级灰度出现的概率,将其存入GP中相应位置endfigure,bar(0:255,GP,g) %绘制直方图 figure NO 3title(原图像直方图)xlabel(灰度值)ylabel(出现概率)%三,直方图均衡化S1=zeros(1,256);for i=1:256for j=1:iS1(i)=GP(j)+S1(i
6、);%计算SkendendS2=round(S1*256); %将Sk归到相近级的灰度for i=1:256GPeq(i)=sum(GP(find(S2=i); %计算现有每个灰度级出现的概率figure,bar(0:255,GPeq,b) %显示均衡化后的直方图 figure NO 4 title(均衡化后的直方图)xlabel(灰度值)ylabel(出现概率)figure,plot(0:255,S2,r) %显示灰度变化曲线 figure NO 5legend(灰度变化曲线)xlabel(原图像灰度级)ylabel(均衡化后灰度级)%四,图像均衡化PA=PS;for i=0:255PA(f
7、ind(PS=i)=S2(i+1);%将各个像素归一化后的灰度值赋给这个像素endfigure,imshow(PA) %显示均衡化后的图像 figure NO 6title(均衡化后图像)imwrite(PA,PicEqual.bmp); (1) 输入的彩色BMP图像(2) 均衡化后的BMP图像4. 用Matlab打开一幅图像,添加椒盐、高斯噪声,然后使用邻域平均法、中值滤波法进行平滑。(4种结果,比较哪种方法适合滤除哪种噪声)(1) 添加椒盐噪声的图像 (2) 采用邻域平均法处理I0=imread(get.bmp);I=rgb2gray(I0);J=imnoise(I,salt & pepp
8、er,0.02); K1=filter2(fspecial(average,7),J);K2=filter2(fspecial(average,9),J);figure,imshow(uint8(K1);title(7x7);(3) 采用中值滤波法处理I0=imread(get.bmp);I=rgb2gray(I0)J=imnoise(I,salt & pepper,0.02);K=medfilt2(J,7 7);figure,imshow(K);title(7x7);(4) 添加高斯噪声的图像(5) 采用邻域平均法处理I0=imread(get.bmp);I=rgb2gray(I0);J=i
9、mnoise(I,gaussian,0,0.02)K=filter2(fspecial(average,7),J);figure,imshow(uint8(K);title(7x7); (6) 采用中值滤波法处理后的图像I0=imread(get.bmp);I=rgb2gray(I0)J=imnoise(I,gaussian,0.02);K=medfilt2(J,7 7);figure,imshow(K);title(7x7); 对含有同一种噪声类型的不同图像采用2种滤波方法进行分析可知:原始图像经过邻域平均法滤波处理后,噪声得到了抑制,但也使图像边缘变得模糊;中值滤波方法运算简单,易于实现,
10、能较好地保护图像边界,但有时会失掉图像中的细线和小块的目标区域。对含有不同噪声类型的同一图像采用这2种滤波方法进行处理后,分析可知:邻域平均滤波方法对高斯噪声有较强的抑制效果,对椒盐噪声抑制效果不明显;中值滤波方法对高斯噪声的抑制效果不明显,对去除椒盐噪声效果明显。5. 用Matlab打开一幅图像,利用Roberts梯度法、Sobel算子和拉普拉斯算子进行锐化,并比较结果。(1) Roberts梯度法I=imread(get.bmp);H,W=size(I);M=double(I);J=M;for i=1:H-1for j=1:W-1J(i,j)=abs(M(i,j)-M(i+1,j+1)+a
11、bs(M(i+1,j)-M(i,j+1);end;end;figure ;imshow(I);title(原图);figure ;imshow(uint8(J);title(Roberts处理后); (2) Sobel算子I=imread(get.bmp);H,W=size(I);M=double(I);J=M;for i=2:H-1forj=2:W-1 J(i,j)=abs(M(i-1,j+1)-M(i-1,j-1)+2*M(i,j+1)-2*M(i,j-1)+M(i+1,j+1)-M(i+1,j-1)+abs(M(i-1,j-1)-M(i+1,j-1)+2*M(i-1,j)-2*M(i+1
12、,j)+M(i-1,j+1)-M(i+1,j+1);end;end;figure ;imshow(I);title(原图);figure ;imshow(uint8(J);title(Sobel 处理后);(3) 拉普拉斯算子I=imread(get.bmp);H,W=size(I);M=double(I);J=M;for i=2:H-1 for j=2:W-1 J(i,j)=4*M(i,j)-M(i+1,j)+M(i-1,j)+M(i,j+1)+M(i,j-1); end; end; figure ;imshow(I);title(原图); figure ;imshow(uint8(J);title(锐化处理后的图);锐化的实质是:锐化图像g(m,n) = 原图像f(m,n) + 加重的边缘(*微分)由实验效果对比图可以看出Sobel算子处理图像后使边缘有一定的模糊。Laplacian检测模板的特点是各向同性,对孤立点及线端的检测效果好,但边缘方向信息丢失,对噪声敏感,整体检测效果不如Roberts梯度算子。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1