跪求图像预处理全部程序: 将BMP图像转为灰度图像,然后进行中值滤波,最后图片窗口选择。 希望各位高手能把每一步程序都发给小弟,小弟在此跪谢!邮箱:hosaint@163.com
程序如下:clcclose allclear all%%%生成高斯平滑滤波模板%%%%%%%%%%%%%%%%%%%%%%%%%%%%hg=zeros(3,3); %设定高斯平滑滤波模板的大小为3*3delta=0.5;for x=1:1:3 for y=1:1:3 u=x-2; v=y-2; hg(x,y)=exp(-(u^2+v^2)/(2*pi*delta^2)); endendh=hg/sum(hg(:));%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读入图像%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%f = imread('1111.tif'); % 读入图像文件f=rgb2gray(im2double(f));imshow(f)title('原始图像');[m,n]=size(f);ftemp=zeros(m,n);rowhigh=m-1;colhigh=n-1;%%%高斯滤波%%%for x=2:1:rowhigh-1 for y=2:1:colhigh-1 mod=[f(x-1,y-1) f(x-1,y) f(x-1,y+1); f(x,y-1) f(x,y) f(x,y+1);f(x+1,y-1) f(x+1,y) f(x+1,y+1)]; A=h.*mod; ftemp(x,y)=sum(A(:)); endendf=ftempfigure,imshow(f)title('通过高斯滤波器后的图像');% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%利用roberts算子进行边缘检测%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sx=[-1 -2 -1;0 0 0;1 2 1];sy=[-1 0 1;-2 0 2;-1 0 1];for x=2:1:rowhigh-1 for y=2:1:colhigh-1 mod=[f(x-1,y-1) f(x-1,y) f(x-1,y+1); f(x,y-1) f(x,y) f(x,y+1);f(x+1,y-1) f(x+1,y) f(x+1,y+1)]; fsx=sx.*mod; fsy=sy.*mod; ftemp(x,y)=sqrt((sum(fsx(:)))^2+(sum(fsy(:)))^2); endendfr=im2uint8(ftemp);figure,imshow(fr)title('用roberts算子边缘检测的原始图像');%%%域值分割%%%TH1=60; %设定阈值for x=2:1:rowhigh-1 for y=2:1:colhigh-1 if (fr(x,y)>=TH1)&((fr(x,y-1) <= fr(x,y)) & (fr(x,y) > fr(x,y+1)) ) fr(x,y)=200; elseif(fr(x,y)>=TH1)&( (fr(x-1,y) <=fr(x,y)) & (fr(x,y) >fr(x+1,y))) fr(x,y)=200; else fr(x,y)=50; end endendfigure,imshow(fr)title('用roberts算子边缘检测并细化后的图像'); |
|