文章和代码以及样例图片等相干资源,曾经归档至【Github仓库:digital-image-processing-matlab】或者公众号【AIShareLab】回复 数字图像处理 也可获取。
目标
- 收缩的简略利用、应用 strel 函数、侵蚀的阐明
- 函数imopen 和imclose 的利用、应用IPT函数bwhitmiss
- 灰度图像形态学开运算和闭运算
- 灰度图像形态学应用重构删除简单图像的背景
内容
收缩的简略利用
A=imread('D:\pic\DIP3E_CH04\Fig0419(a)(text_gaps_of_1_and_2_pixels).tif');figure, imshow(A)B=[0 1 0;1 1 1;0 1 0];A2=imdilate(A,B);figure,imshow(A2)
应用 strel 函数合成构造元素的阐明
se=strel('diamond',5)decomp=getsequence(se);whosdecomp(1)decomp(2)decomp(3)decomp(4)
侵蚀的阐明
A=imread('D:\pic\DIP3E_CH09\Fig0905(a)(wirebond-mask).tif');figure, imshow(A)%原图像se=strel('disk',10)A2=imerode(A,se)figure, imshow(A2)%半径为10 的圆盘侵蚀后的图像se=strel('disk',5)A3=imerode(A,se)figure, imshow(A3)%半径为5 的圆盘侵蚀后的图像A4=imerode(A,strel('disk',20))figure, imshow(A4)%半径为20 的圆盘侵蚀后的图像
函数imopen 和imclose 的利用
f=imread('D:\pic\DIP3E_CH09\Fig0905(a)(wirebond-mask).tif');figure, imshow(f)%原图像se=strel('square',20);fo=imopen(f,se);figure, imshow(fo)%开运算后的图像fc=imclose(f,se);figure, imshow(fc)%闭运算后的图像foc=imclose(fo,se);figure, imshow(foc)%图像A2 经闭运算后的图像
应用 IPT 函数bwhitmiss
f=imread('D:\pic\DIP3E_CH09\FigP0918(left).tif')figure,imshow(f)B1=strel([0 0 0;0 1 1;0 1 0]);B2=strel([1 1 1;1 0 0;1 0 0]);g=bwhitmiss(f,B1,B2);figure,imshow(g)
灰度图像形态学开运算和闭运算
%%%%%%%%%应用开运算和闭运算做形态学平滑%%%%%%%%%%%%%%%%%clear allclcf=imread('D:\pic\DIP3E_CH09\Fig0941(a)(wood_dowels).tif');figure, imshow(f)%原图像se=strel('disk',5);fo=imopen(f,se);figure, imshow(fo)%开运算后的图像foc=imclose(fo,se);figure, imshow(foc)%图像A2 经闭运算后的图像fasf=f;for k=2:5 se=strel('disk',k); fasf=imclose(imopen(fasf,se),se);endfigure,imshow(fasf) %%%%%% 交替程序滤波后的图像%%%%%%%%%%应用顶帽变换%%%%%%%%%%%%%%clear allclcf=imread('D:\pic\DIP3E_CH09\Fig0940(a)(rice_image_with_intensity_gradient).tif');figure, imshow(f)%原图像se=strel('disk',10);fo=imopen(f,se);figure, imshow(fo)%经开运算解决后的图像f2=imsubtract(f,fo);figure, imshow(f2)f2=imtophat(f,se);figure, imshow(f2)se=strel('disk',3);g=imsubtract(imadd(f,imtophat(f,se)),imbothat(f,se));%低帽、顶帽figure, imshow(g)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%颗粒剖析%%%%%%%%%%%%%%clear allclcf=imread('D:\pic\DIP3E_CH09\Fig0940(a)(rice_image_with_intensity_gradient).tif');sumpixels=zeros(1,36);for k=0:35 se=strel('disk',k); fo=imopen(f,se); sumpixels(k+1)=sum(fo(:));endfigure,plot(0:35,sumpixels);xlabel('k');ylabel('surface area')figure, plot(-diff(sumpixels))xlabel('k');ylabel('surface area reduction')%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
灰度图像形态学应用重构删除简单图像的背景
%灰度图像形态学应用重构删除简单图像的背景clear allclcf=imread('D:\pic\DIP3E_CH09\Fig0944(a)(calculator).tif');figure, imshow(f)%原图像f_obr=imreconstruct(imerode(f,ones(1,71)),f);figure, imshow(f_obr)f_o=imopen(f,ones(1,71));%for comparisonfigure, imshow(f_o)f_thr=imsubtract(f,f_obr);figure, imshow(f_thr)f_th=imsubtract(f,f_o);%or imtophat(f,ones(1,71))figure, imshow(f_th)g_obr=imreconstruct(imerode(f_thr,ones(1,11)),f_thr);figure, imshow(g_obr)g_obrd=imdilate(g_obr,ones(1,21));figure, imshow(g_obrd)f2=imreconstruct(min(g_obrd,f_thr),f_thr);figure, imshow(f2)
参考文献:
[1] Rafael C. Gonzalez, Richard E. Woods, and Steven L. Eddins. 2003. Digital Image Processing Using MATLAB. Prentice-Hall, Inc., USA.
[2] [阮秋琦. 数字图像处理(MATLAB版)[M]. 北京:电子工业出版社, 2014.](https://github.com/timerring/digital-image-processing-matlab/blob/main/reference/Digital_Image_Processing_(MATLAB_version).pdf)
[3] [冈萨雷斯. 数字图像处理(第三版)[M]. 北京:电子工业出版社, 2011.](https://github.com/timerring/digital-image-processing-matlab/blob/main/reference/Digital_Image_Processing_(Third_Edition).pdf)