这篇文章主要介绍“matlab如何实现形态学图像处理”,在日常操作中,相信很多人在matlab如何实现形态学图像处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”matlab如何实现形态学图像处理”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
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); whos decomp(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 的圆盘腐蚀后的图像
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 all clc f=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); end figure,imshow(fasf) %%%%%% 交替顺序滤波后的图像 %%%%%%%%%%使用顶帽变换%%%%%%%%%%%%%% clear all clc f=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 all clc f=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(:)); end figure,plot(0:35,sumpixels); xlabel('k'); ylabel('surface area') figure, plot(-diff(sumpixels)) xlabel('k'); ylabel('surface area reduction') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%灰度图像形态学使用重构删除复杂图像的背景 clear all clc f=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 comparison figure, 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)
到此,关于“matlab如何实现形态学图像处理”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。