如何在matlab中实现灰度形态检测灰度图像上的圆形物体?

Posted

技术标签:

【中文标题】如何在matlab中实现灰度形态检测灰度图像上的圆形物体?【英文标题】:How to implement Gray scale morphology to detect round object on gray scale image in matlab? 【发布时间】:2016-05-18 10:45:34 【问题描述】:

有许多方法可以在二值图像上实现数学变形,例如 imerode 和 imdilate。它还用于使用二进制图像上的这个简单操作来检测不同的对象/形状,但我现在面临的问题是应用这个简单的操作,即在灰度图像上侵蚀、扩张和许多,而不将它们转换为二进制图像。

Selement = strel('disk',5);//disk type element used in morphology
erodeimage = imerode(image,selement);//this is only implement on binary image

以上代码用于二进制数学变形我如何在灰度图像上实现相同的概念。

注意:如果您有任何关于灰度数学变形的资源,请提供或提供有用的链接

【问题讨论】:

imerode 适用于灰度图像。来自documentation:“IM2 = imerode(IM,SE) 侵蚀灰度、二值或打包二值图像 IM...” 【参考方案1】:

MatLab 中应该有一个数学形态学 (MM) 库。二值图像上的 MM 操作仅作为示例/插图显示,但大部分时间以灰度级执行。

我认为最快的 C++ 库是SMIL,你可以从 MatLab 中调用它。 C 中的另一个快速算法是 that one(优化了单次打开/关闭)。

但是,如果您想了解灰度级的膨胀,它的工作原理如下:对于给定的像素 p,您分析其邻域内所有像素的值(由结构元素定义),并且您影响到 p 附近的最高值。您为图像中的每个像素执行此操作。请参阅formula。

这实际上是一个类似于中值的等级过滤器,但不是取中值,而是取最大值(或腐蚀最小值)。显然,基本定义和它退出了更快的算法,就像我指出的库中开发的那样。

【讨论】:

以上是关于如何在matlab中实现灰度形态检测灰度图像上的圆形物体?的主要内容,如果未能解决你的问题,请参考以下文章

缺陷检测基于matlab形态学液晶显示器表面缺陷检测含Matlab源码 1304期

如何在 MATLAB 中将彩色图像转换为灰度图像?

纸牌识别基于matlab形态学扑克牌识别含Matlab源码 1352期

钟表识别基于matlab GUI形态学钟表识别含Matlab源码 1351期

图像检测基于形态学实现水果缺陷检测matlab源码

matlab形态学处理——膨胀腐蚀的原理