史蒂夫与MATLAB图像处理

图像处理的概念、算法和MATLAB

二进制图像过滤面积

在我8月8日关于口袋妖怪的帖子去(我还是不太相信我这样做),其中一个处理步骤是找到重心最大的对象在一个二进制图像。

这让我想起了在我的博客上的主题创意列表很长一段时间:过滤基于对象的二进制映像的大小。通常使用这个操作作为一种清理或预处理操作删除小斑点“声”。

数学形态学在民间,移除连接组件面积小于某个阈值区域开放,有一个图像处理工具箱函数调用bwareaopen它。

bw = imread (“blobs.png”);imshow (bw)标题(“原始”)

保持对象包含至少10像素。

bw2 = bwareaopen (bw, 10);imshow (bw2)标题(“开放区域”)

长期的博客的读者可能还记得从五年前的帖子我邀请反馈区域开放术语和名称的函数bwareaopen。我想知道这个职位是否区域开放是有点太费解。几个人深刻的评论。

讨论了影响。几个发布周期后,R2014b工具箱开发团队增加了一个新的功能:bwareafilt。这个函数“保持”的一个子集二进制图像中的对象基于大小。有几种方法来定义子集。下面是一些例子:

保持前十大对象。

bw3 = bwareafilt (bw, 10);imshow (bw3)标题(“十大对象”)

保持10最小的对象。

bw4 = bwareafilt (bw 10“最小”);imshow (bw4)标题(“10最小的对象”)

在尺寸范围内保持对象。

bw5 = bwareafilt (bw, 50 [20]);imshow (bw5)标题(尺寸范围:20 - 50像素的)

保持对象与使用正作为上界最小大小。

bw6 = bwareafilt (bw,[100正]);imshow (bw6)标题(的对象至少有100像素)

最后,让我告诉你一个快速的方法得到图像的直方图的对象大小。

bw_text = imread (“text.png”);imshow (bw_text)
t = regionprops (“表”bw_text,“区域”);图直方图(t.Area)标题(“文本图像对象大小”)




发表与MATLAB®R2016a

|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。