史蒂夫与MATLAB图像处理

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

图像二值化——新的R2016a函数

在我09 - 2016年5月,职位,我描述了图像处理工具箱的功能im2bwgraythresh在产品中,很长一段时间。我还发现了一些弱点在功能设计:

  • 这个函数im2bw使用一个固定的阈值(水平0.5默认的)。使用graythresh自动确定阈值将是一个更有用的行为大部分时间。
  • 如果你不需要拯救的价值水平,那么你最终调用的函数在一个略微尴尬的方式,通过输入图像的两个函数:bw = im2bw(我graythresh(我))
  • 尽管大津法只需要知道图像的直方图,你必须通过graythresh函数图像本身。这是一些尴尬的用例,如使用集体数据集的多个图像直方图来计算一个阈值。
  • 一些用户想要控制使用的直方图箱数graythresh没有,作为一个选项。(我忘了以前我在文章中提到这个项目)。
  • 没有局部自适应阈值方法在工具箱。

所有的这些原因,二值化的图像处理工具箱的开发进行了重新设计R2016a释放功能。功能设计是不同的和已经扩展的功能。我们现在鼓励使用一个新家庭的功能:

使用一个自动计算阈值的二值化是现在更简单。而不是两个函数调用,im2bw(我graythresh(我))你可以用一个,imbinarize(我)

我= imread (“cameraman.tif”);imshow(我)包含(摄影师图片由麻省理工学院的)
bw = imbinarize(我);imshowpair (bw,我“蒙太奇”)

除了全局阈值,imbinarize也可以做局部自适应阈值。这里有一个例子使用图像和温和的光照梯度从上到下。

我= imread (“rice.png”);bw = imbinarize(我);imshowpair (bw,我“蒙太奇”)标题(“原始和全局阈值”)

你可以看到底部的米粒图像的不完全分割,因为他们是在一个黑暗部分的图像。现在切换到一个自适应的阈值。

bw = imbinarize(我“自适应”);imshowpair (bw,我“蒙太奇”)标题(“原来和自适应阈值”)

这是一个更极端的例子非均匀照明。

我= imread (“printedtext.png”);imshow (I)标题(原始图像的)
bw = imbinarize(我);imshow (bw)标题(“全球阈值”)

让我们看看如何使用一种自适应阈值可以改善结果。但跳进去之前,注意到这张照片的前景像素比背景深,这是相反的米粒上图。自适应方法更好的如果它知道寻找前景像素比背景颜色更浅或者更深。可选参数“ForegroundPolarity”允许指定。

bw = imbinarize(我“自适应”,“ForegroundPolarity”,“黑暗”);imshow (bw)标题(自适应阈值的)

的新功能otsuthreshadaptthresh对于那些想要更细粒度的控制全球和自适应阈值算法基础的行为吗imbinarize。下次我将谈论他们。




发表与MATLAB®R2016a

|
  • 打印
  • 发送电子邮件

评论

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