前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大神带你玩转matlab图像处理(三)

大神带你玩转matlab图像处理(三)

作者头像
巴山学长
发布2020-03-10 18:52:04
1.2K0
发布2020-03-10 18:52:04
举报
文章被收录于专栏:巴山学长巴山学长

第四章:图像形态学变换

4.1 图像腐蚀

基础理论模型

下图介绍以3*3的结构元素腐蚀效果图

原始图像

正方形结构元

腐蚀过程

腐蚀结果

指定的结构元语法规则:

SE =strel('diamond',r)创建菱形形状的结构元素,其中r指定从结构元素原点到菱形中心点的距离。

SE = strel('disk',r,n) 创建一个圆形结构元素,其中r 指定半径并n指定用于近似圆盘形状的线形结构元素的数量。当结构化元素使用近似值时,使用圆盘近似值的形态运算的运行速度要快得多。

SE = strel('line',len,deg) 创建一个线性结构元素,该元素相对于邻域中心对称

SE =strel('octagon',r)创建一个八边形结构元素,该元素r指定从结构元素原点到八边形边的距离(沿水平轴和垂直轴测量)。r必须为3的非负倍数。

SE =strel('rectangle',[m n]) 创建一个大小为的矩形结构元素[m n]。

SE =strel('square',w)创建一个正方形结构元素,其宽度为w 像素。

SE = strel('cube',w)创建一个3D立方体结构元素,其宽度为w 像素。

SE =strel('cuboid',[m n p]) 创建一个大小为的3-D长方体结构元素[m n p]。

SE =strel('arbitrary',nhood,h)任意自定义结构元素

SE =strel('sphere',r)创建一个半径为r 像素的3-D球体结构元素。

imerode语法规则:

B=imerode(A,SE)

A:原图像,B:结果图,SE:结构元

代码语言:javascript
复制
clc;clear;s=what;p=s.path;I=imread([p,'\图像素材\','lenaRGB.bmp']);gr=graythresh(I);%确定二值化阈值B=im2bw(I,gr);%对图像二值化%% 正方形结构元素腐蚀se1=strel('square',2);se2=strel('square',4);se3=strel('square',8);se4=strel('square',16);J1=imerode(B,se1);J2=imerode(B,se2);J3=imerode(B,se3);J4=imerode(B,se4);subplot(2,3,1);imshow(I);title('原图像','FontSize',20);subplot(2,3,2);imshow(B);title('二值化图像','FontSize',20);subplot(2,3,3);imshow(J1);title('$2\times 2$','interpreter','latex','FontSize',20);%2*2正方形结构元素腐蚀图subplot(2,3,4);imshow(J2);title('$4\times 4$','interpreter','latex','FontSize',20);%4*4正方形结构元素腐蚀图subplot(2,3,5);imshow(J3);title('$8\times 8$','interpreter','latex','FontSize',20);%8*8正方形结构元素腐蚀图subplot(2,3,6);imshow(J4);title('$16\times 16$','interpreter','latex','FontSize',20);%16*16正方形结构元素腐蚀图

运行结果

4.2 图像膨胀

下图介绍以3*3的结构元素膨胀效果图

原始原图

正方形结构元

膨胀过程

结果图

imdilate语法规则:

B=imdilate(A,SE)

A:原图像,B:结果图,SE:结构元

代码语言:javascript
复制
clc;clear;s=what;p=s.path;I=imread([p,'\图像素材\','lenaRGB.bmp']);gr=graythresh(I);%确定二值化阈值B=im2bw(I,gr);%对图像二值化%% 正方形结构元素膨胀se1=strel('square',2);se2=strel('square',4);se3=strel('square',8);se4=strel('square',16);J1=imdilate(B,se1);J2=imdilate(B,se2);J3=imdilate(B,se3);J4=imdilate(B,se4);subplot(2,3,1);imshow(I);title('原图像','FontSize',20);subplot(2,3,2);imshow(B);title('二值化图像','FontSize',20);subplot(2,3,3);imshow(J1);title('$2\times 2$','interpreter','latex','FontSize',20);%2*2正方形结构元素膨胀图subplot(2,3,4);imshow(J2);title('$4\times 4$','interpreter','latex','FontSize',20);%4*4正方形结构元素膨胀图subplot(2,3,5);imshow(J3);title('$8\times 8$','interpreter','latex','FontSize',20);%8*8正方形结构元素膨胀图subplot(2,3,6);imshow(J4);title('$16\times 16$','interpreter','latex','FontSize',20);%16*16正方形结构元素膨胀图

运行结果

4.3 开运算

下图介绍以3*3的结构元素开运算效果图

原始原图

正方形结构元

先腐蚀得出结果图

再膨胀得出结果图

imopen语法规则:

B=imopen(A,SE)

A:原图像,B:结果图,SE:结构元

代码语言:javascript
复制
clc;clear;s=what;p=s.path;I=imread([p,'\图像素材\','lenaRGB.bmp']);gr=graythresh(I);%确定二值化阈值B=im2bw(I,gr);%对图像二值化%% 正方形结构元se1=strel('square',2);se2=strel('square',4);se3=strel('square',8);se4=strel('square',16);J1=imopen(B,se1);J2=imopen(B,se2);J3=imopen(B,se3);J4=imopen(B,se4);subplot(2,3,1);imshow(I);title('原图像','FontSize',20);subplot(2,3,2);imshow(B);title('二值化图像','FontSize',20);subplot(2,3,3);imshow(J1);title('$2\times 2$','interpreter','latex','FontSize',20);%2*2正方形结构元素开运算图subplot(2,3,4);imshow(J2);title('$4\times 4$','interpreter','latex','FontSize',20);%4*4正方形结构元素开运算图subplot(2,3,5);imshow(J3);title('$8\times 8$','interpreter','latex','FontSize',20);%8*8正方形结构元素开运算图subplot(2,3,6);imshow(J4);title('$16\times 16$','interpreter','latex','FontSize',20);%16*16正方形结构元素开运算图

运行结果

4.4 闭运算

下图介绍以3*3的结构元素闭运算效果图

原图像

正方形结构元

先膨胀得出结果图

再腐蚀得出结果图

imclose语法规则:

B=imclose(A,SE)

A:原图像,B:结果图,SE:结构元

代码语言:javascript
复制
clc;clear;s=what;p=s.path;I=imread([p,'\图像素材\','lenaRGB.bmp']);gr=graythresh(I);%确定二值化阈值B=im2bw(I,gr);%对图像二值化%% 正方形结构元se1=strel('square',2);se2=strel('square',4);se3=strel('square',8);se4=strel('square',16);J1=imclose(B,se1);J2=imclose(B,se2);J3=imclose(B,se3);J4=imclose(B,se4);subplot(2,3,1);imshow(I);title('原图像','FontSize',20);subplot(2,3,2);imshow(B);title('二值化图像','FontSize',20);subplot(2,3,3);imshow(J1);title('$2\times2$','interpreter','latex','FontSize',20);%2*2正方形结构元素闭运算图subplot(2,3,4);imshow(J2);title('$4\times 4$','interpreter','latex','FontSize',20);%4*4正方形结构元素闭运算图subplot(2,3,5);imshow(J3);title('$8\times 8$','interpreter','latex','FontSize',20);%8*8正方形结构元素闭运算图subplot(2,3,6);imshow(J4);title('$16\times 16$','interpreter','latex','FontSize',20);%16*16正方形结构元素闭运算图

运行结果

参考资料:

https://ww2.mathworks.cn/help/images/ref/strel.html?s_tid=srchtitle

图片来源:https://en.wikipedia.org/wiki/Lena_Forsén

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档