编程处理图像

编程处理图像

ID:37573847

大小:3.67 MB

页数:14页

时间:2019-05-25

编程处理图像_第1页
编程处理图像_第2页
编程处理图像_第3页
编程处理图像_第4页
编程处理图像_第5页
资源描述:

《编程处理图像》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数字图像处理与模式识别作业练习题一在图像中生成一个矩形,然后用模板匹配法找出矩形位置。使用SSDA或改进的SSDA法。Matlab源程序:%模板匹配法算法函数%生成一个矩形,并用ssda算法找出矩形所在的位置,程序输出的是匹配处的第一个点的坐标。img=zeros(30);img(8:13,3:6)=1;mask=[1111;1111;1111;1111;1111;1111];[maskH,maskW]=size(mask);[imgH,imgW]=size(img);energyMask=0;forn=1:maskHform=1:

2、maskWenergyMask=energyMask+mask(n,m)*mask(n,m);endendif(energyMask==0)energyMask=1;endenergyMask=sqrt(energyMask);R=zeros(imgH,imgW);fory=1:(imgH-maskH)forx=1:(imgW-maskW)%whetherposition(y,x)isOK?relateVal=0;energySubImage=0;forn=1:maskHform=1:maskW%S->y+n-1relateVal=

3、relateVal+img(y+n-1,x+m-1)*mask(n,m);energySubImage=energySubImage+img(y+n-1,x+m-1)*img(y+n-1,x+m-1);endendenergySubImage=sqrt(energySubImage);if(energySubImage==0)energySubImage=1;endR(y,x)=relateVal/(energySubImage*energyMask);aaa=R(y,x);if(R(y,x)>=1)%y,x为匹配点的起始坐标;yx

4、endendend程序运行结果:y=8;x=3总结:通过相关函数的计算来找到它及被搜索的图的坐标位置。由于模板要在个参数位置上作相关计算,其中除一点以外都是在非匹配点上作“无用”工作,因此人们自然希望有一种快速有效算法,当一旦发现模板所在参数位置为非匹配点就丢弃不再算下去,立即换到一个新的参数点作计算,这样就能加快求匹配过程,就是序贯相似性检测算法。简称SSDA。练习题二用C语言或者VC,VB,Matlab或其他语言完成如下实验:1)打开一个BMP文件2)将其局部区域的灰度值进行改变3)另存为一个新的BMP文件要求显示出原BMP图像

5、和新BMP图像。总结:读入一幅图像,首先如果是rgb图像,要转化为灰度图像。灰度图像有256个灰度等级。改变对应的数值,可以改变局部区域的灰度值。以下程序中实现了将一矩形区域全部变为白色。Matlab源程序:clearall;f=imread('image1.bmp');f1=rgb2gray(f);%转换为灰度图figure(1);imshow(f1);imwrite(f1,'image1_gray.bmp');f1(100:150,100:120)=256;%局部改变灰度值figure(2);imshow(f1);imwrite

6、(f1,'image1_gray_1.bmp');size(f1)whosf1原始灰度图像:局部改变灰度值的图像:练习题三1.编程实现图像傅立叶高通、低通滤波。2.尝试傅立叶压缩。1.低通滤波MATLAB源程序:clearall;I=imread('image1_gray.bmp');figure(1);imshow(I);I=double(I);f=fft2(I);g=fftshift(f);[M,N]=size(g);n1=floor(M/2);n2=floor(N/2);d0=30;fori=1:Mforj=1:Nd=sqrt

7、((i-n1)^2+(j-n2)^2);ifd<=d0h1=1;elseh1=0;endg1(i,j)=(h1+0)*g(i,j);endendg2=ifftshift(g1);g3=uint8(real(ifft2(g2)));figure(2);imshow(g3);title('低通滤波结果')经低通滤波以后的图像:2.高通滤波源程序:clearall;I=imread('image1_gray.bmp');figure(1);imshow(I);I=double(I);f=fft2(I);g=fftshift(f);[M,N

8、]=size(g);n1=floor(M/2);n2=floor(N/2);d0=5;fori=1:Mforj=1:Nd=sqrt((i-n1)^2+(j-n2)^2);ifd>=d0h1=1;elseh1=0;endg1(i,j)=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。