一文详解matlab实现形态学图像处理
更新时间:2023年3月10日 16:34 点击:25 作者:timerring
目的
文章和代码以及样例图片等相关资源,已经归档至【Github仓库:digital-image-processing-matlab】
- 膨胀的简单应用、使用 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); 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 的圆盘腐蚀后的图像
函数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 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)
参考文献:
[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.
[3] 冈萨雷斯. 数字图像处理(第三版)[M]. 北京:电子工业出版社, 2011.
以上就是一文详解matlab实现形态学图像处理的详细内容,更多关于matlab形态学图像处理的资料请关注猪先飞其它相关文章!
原文出处:https://juejin.cn/post/7207824074709270587
下一篇: Qt实战之实现图片浏览器
相关文章
- 这篇文章主要介绍了如何用Matlab和Python读取Netcdf文件,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...2021-02-20
Python编程OpenCV和Numpy图像处理库实现图片去水印
这篇文章主要介绍了Python编程中如何实现图片去水印本文采用了OpenCV和Numpy的图像处理的方法来实现,文中附含详细示例代码,有需要的朋友可以借鉴参考下...2021-09-26将pycharm配置为matlab或者spyder的用法说明
这篇文章主要介绍了将pycharm配置为matlab或者spyder的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-09- 本文章来给各同学总结了一些常用的图像处理函数,包括有缩放、剪裁、缩放、翻转、旋转、透明、锐化功能,大家可参考参考。 注意事项:如果要使用php gd处理我们需要...2016-11-25
- 为了快速地处理大量信息,科学家需要利用图像准备工具来完成人工智能和深度学习任务.在本文中,我将深入研究Python中最有用的图像处理库,这些库正在人工智能和深度学习任务中得到大力利用.我们开始吧,需要的朋友可以参考下...2021-06-16
- 这篇文章主要介绍了matlab中 sort 函数用法 的相关资料,需要的朋友可以参考下...2016-03-22
- 这篇文章主要介绍了Matlab使用fft画出信号频谱图的方法,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-19
- 这篇文章主要介绍了CI框架文件上传类及图像处理类用法,设计CI框架图片上传及缩略图操作的相关技巧,需要的朋友可以参考下...2016-05-20
- 这篇文章主要介绍了Matlab制作视频并转换成gif动态图的两种方法,第一种方法使用movie(f)直接取生成AVI视频文件,相对来说比较简单,需要的朋友可以参考下...2020-04-25
- 这篇文章主要为大家详细介绍了Matlab使用Plot函数实现数据动态显示方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
- 这篇文章主要介绍了MATLAB 求取离散点的曲率最大值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-16
- size()函数用来获取矩阵的行数和列数。接下来通过本文给大家介绍matlab中size()函数的用法,需要的朋友一起学习吧...2016-03-22
- 这篇文章主要为大家详细介绍了C语言实现BMP图像闭运算处理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-10-25
- 这篇文章主要为大家详细介绍了MATLAB Delaunay算法提取离散点边界的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
- 下面小编就为大家带来一篇c++图像处理:24位真彩图颜色变换实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-04-25
- 这篇文章主要介绍了C++如何调用matlab函数的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-04-25
- imagecreatetruecolor()返回一个图像标识符代表指定大小的黑色形象。 根据你的php教程和gd版本中函数定义与否。对于php 4.0.6通过4.1.x这个函数总是存在的 , */ $im=im...2016-11-25
- 这篇文章主要介绍了Python图像处理之膨胀与腐蚀的操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-07
- 这篇文章主要介绍了基于python实现matlab filter函数过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-09
- 这篇文章主要介绍了解决python调用matlab时的一些常见问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-24