网站首页 > 技术教程 正文
在进行图像处理时,有时只需对图像中的某个特定区域进行处理,而并不需要对整个图像进行处理。在MATLAB中,对特定区域的处理是通过二值掩膜来实现的。用户选定一个区域后会生成一个与原图像大小相同的二值图像,选定的区域为白色,其它为黑色。通过掩膜图像就可以实现对特定区域的选择性处理。
在MATLAB中提供了bestblk()函数用于选择图像块的尺寸。当需要定义图像块,但图像块的尺寸又不能明显看出来,这时就可以利用bestblk()函数来帮助我们获得合适的块尺寸。该函数的调用格式如下:
siz = bestblk([m n],k):输入图像的尺寸大小为m*n,输出siz为块尺寸;块尺寸的最大值不大于输入参数k;
[mb,nb] = bestblk([m n],k):返回图像块的行数和列数,结果和siz一样。
在MATLAB图像处理工具箱中,提供了roipoly()函数、roicolor()函数和poly2mask()三个函数来生成二值掩膜。
roipoly()函数用于设定图像中的多边形区域,其输出与输入大小一致的二值图像,多边形区域为1,其他为0。该函数的调用格式如下:
BW = roipoly或BW = roipoly(I):让用户交互地选择多边形区域。通过单击鼠标设定多边形的顶点(按空格键、Esc键和Del键可撤销顶点),选好顶点后,按回车键确认;
BW = roipoly(I, c, r):非交互,向量(c,r)作为多边形X-Y轴下的顶点坐标;
BW = roipoly(x, y, I, xi, yi):用矢量x,y建立非默认的坐标系,然后在该坐标系下以向量(xi,yi)表示多边形顶点;
[BW, xi, yi] = roipoly(...):返回多边形顶点的坐标;
[x, y, BW, xi, yi] = roipoly(...):返回在X-Y坐标系下的多边形顶点的坐标。
roicolor()函数用于按灰度选择区域。该函数的调用格式如下:
BW = roicolor(A,low,high):色图范围为[low high],像素灰度值在该范围内,返回1,否则,返回0,最后输出与输入图像大小一致的二值图像;
BW = roicolor(A,v):v是一个包含各种灰度值的向量;如果A中像素灰度值在向量v中,则返回1,否则,返回0;
poly2mask()函数可以生成二值图像的掩膜,前提是必须要指定生成掩膜的图像;此外,也可以将多边形区域转化为遮罩。该函数的调用格式如下:
BW = poly2mask(x, y, m, n):输出的二值图像大小为m*n,(x,y)为顶点构成的多边形内部返回1,外部返回0,边界不定。要想包括边界,可以使(x,y)坐标为小数即可。
在MATLAB中,基于上述产生的二值掩膜,还提供了一些对特定区域进行图像处理的方法。下面,介绍MATLAB中对特定区域进行滤波和填充的方法。
在MATLAB图像处理工具箱中,提供了roifilt2()函数来实现对特定区域的滤波处理。该函数的调用格式如下:
J = roifilt2(h, I, BW):使用滤波器h对图像I中用二值掩膜BW选中的区域进行滤波;
J = roifilt2(I, BW, fun):对图像I中用二值掩膜BW选中的区域进行函数运算,参数fun表示运算表达式。
在MATLAB图像处理工具箱中,提供了roifill()函数来实现对特定区域的填充处理。该函数的调用格式如下:
J = roifill或J = roifill(I):交互选中填充区域
J = roifill(I, c, r):可以“擦掉”向量(c,r)包围的图像;
J = roifill(I, BW):用掩膜图像BW旋转区域;
[J,BW] = roifill(...):返回掩膜图像BW;
J = roifill(x, y, I, xi, yi):与前面介绍的roipoly()函数用法一致;
[x, y, J, BW, xi, yi] = roifill(...):与前面介绍的roipoly()函数用法一致。
下面,通过三个简单实例来具体说明对图像特定区域的处理方法:
代码:
Demo1
Demo2
Demo3
显示效果:
Demo1_原图像
Demo1_分块图像
Demo2_多边形区域生成掩膜
Demo3_figure1:原图像
Demo3_figure2:二值掩膜
Demo3_figure3:篮球颜色变绿
Demo3_figure4:篮球变模糊
Demo3_figure5:篮球被掩盖消失
最后,感谢您的耐心阅读!
猜你喜欢
- 2024-11-06 基于MATLAB的刀具角度测量 matlab测工件尺寸
- 2024-11-06 「三十一」MATLAB图像变换之傅里叶变换
- 2024-11-06 「三十三」MATLAB图像变换之Radon变换(R变换)——投影重建图像
- 2024-11-06 「MATLAB数据导入与分析」MATLAB: 使用内存映射加快文件读写
- 2024-11-06 利用边缘检测计算物体面积(内含源码)
- 2024-11-06 自动驾驶毫米波雷达物体检测技术-算法
- 2024-11-06 基于粒子滤波器的电池剩余使用寿命计算matlab仿真
- 2024-11-06 「二十」MATLAB图像处理之六 matlab怎么做图像处理
- 2024-11-06 matlab程序, 脉冲波合成与提取,滑冲效应、方向性效应
- 2024-11-06 《基于PLE结合卡尔曼滤波的RSSI定位算法matlab仿真》基于PLE
你 发表评论:
欢迎- 05-1613步震撼淘宝大促闪光裂纹破墙立体字PS制作教程
- 05-16AI教程 | 绘制扁平的萌萌哒图标
- 05-160基础学平面设计所需了解的基础常识汇总
- 05-16自学平面设计需要多长时间?十六年职业设计总监告诉你
- 05-16平面设计都要学习哪些内容?
- 05-16李涛PS教程 高手之路PS教程 合成教程 —制作一个小星球
- 05-16Illustrator实例教程:制作炫酷的漩涡效果
- 05-16Illustrator实例教程:利用混合工具制作一朵炫酷的花
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)