问题标签 [mathematical-morphology]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1632 浏览

image-processing - 图像处理侵蚀

请谁能告诉我,当我腐蚀具有零中心示例 [0 0 1] 的结构元素(SE)的图像时会发生什么。因为我了解到腐蚀是图像所有位置的交集(A0 相交 A1 .. An) 并且因为中心为零 => A0 是 Phi,这意味着侵蚀将是什么(黑色图像),这是合理的。但是当我在matlab上尝试它时,它给了我相同的图像(矩形),但它向左移动了一个像素,即(A1)。这意味着它将A0视为U => U(整个宇宙)Intesect A1 => A1。任何人都可以解释为什么会这样吗?并且是matlab结果为真还是在将SE的中心设为零时给出错误结果,因为它不合逻辑。谢谢。

0 投票
4 回答
36485 浏览

c++ - 在 C、C++ 中实现腐蚀、膨胀

我对二值图像中的膨胀是如何完成的有理论上的理解。

AFAIK,如果我的 SE(结构元素)是这个

在哪里 。代表中心,我的图像(二进制是这个)

所以膨胀的结果是

根据 SE,我通过在 0、+1(上)和和 -1(左)方向上移动 Image 并结合所有这三个移位,得到了上述结果。

现在,我需要弄清楚如何在 C、C++ 中实现这一点。我不确定如何开始以及如何进行集合并集。我想代表原始图像,三个移位图像和通过联合获得的最终图像;全部使用矩阵。

有什么地方可以让我开始使用一些示例解决方案或继续进行任何想法吗?

谢谢。

0 投票
1 回答
1052 浏览

matlab - 函数 bwmorph(image, 'skel') 和 applylut 的详细信息

我想了解函数 bwmorph(image, 'skel') 的一些细节。

当我在 matlab 控制台中输入时:

我发现了有关函数 SKEL 的此类代码

我可以获得数组“lutskel”的值吗?

第二个问题:

提前致谢。

0 投票
2 回答
14843 浏览

c++ - 帮助使用扩张功能 OpenCV

在下面的代码中,我想使用该dilate函数,但我不知道如何将一个Mat类转换为InputArrayand OutputArray。你能帮助我吗?

使用这个原型函数:

这是我的代码:

0 投票
2 回答
278 浏览

c# - 对图像进行打开操作时,图像会下移

我正在做一个自动车牌识别应用程序。我正在做的是在给定的车辆图像上定位矩形对象以提取车牌位置。我正在对图像进行打开操作,图像似乎向下移动。因此,当我在原始图像上找到车牌时,我只能找到车牌的一半,因为最终图像由于形态处理而向下移动。

我还注意到当我使用大小为 4x13 的结构元素时会发生这种情况

让我在这里附上图片。您会在图像顶部看到差异,并且图像向下移动了一点。有谁知道解决这个问题的方法?我真的被这件事困住了

在此处输入图像描述

0 投票
1 回答
2349 浏览

c++ - Canny边缘算法中只需要一个边缘

当我使用精明的边缘算法时,它会产生与预期的粗彩色线相对的 2 条边缘,但我希望只显示一个边缘,以使我的直线和曲线检测算法变得不那么复杂,任何关于我如何可以的想法让它发生?

在此处输入图像描述

这是代码:

这不是原始图像,但类似:

在此处输入图像描述

我注释掉哪一部分才能在白色背景中读取黑色图像?或任何彩色图像?

0 投票
1 回答
871 浏览

c - c中的图像侵蚀技术

我对 c 程序有一些奇怪的问题。我正在在线学习 c 编程并练习一些练习。其中关于一种称为侵蚀的图像技术。想象一下,有一幅图像具有两种类型的像素,分别用“.”符号表示。或者 '#'。当一个像素被 4 个 '#' 字符包围时,它会被保留,而在其他情况下,它会被一个 '.' 替换。特点。输入是 N 应用腐蚀的次数,H 和 L 是图像的高度和宽度,以及由“.”组成的字符矩形。和“#”字符。例如输入:

问题是在线编译器(测试一系列随机输入)拒绝我的代码,告诉我内存溢出

这是代码

(代码远不是最优的,因为我试图调试它并使某些东西真正分解)

有谁知道为什么我有这个消息错误?

0 投票
1 回答
235 浏览

image - 用它们的骨架替换连接的区域

具有一些连通区域的二值医学图像

在这里,我展示了一个具有许多连接区域(白色)的二进制图像。我想用单个像素边缘替换这些区域。我该怎么做?

请帮助某人

我想要这种类型的结果

0 投票
2 回答
13992 浏览

matlab - 分割灰度图像

我无法正确分割灰度图像:

要分割的图像

基本事实,即我希望分割看起来像什么,是这样的:

基本事实

我对圈内的三个组成部分最感兴趣。因此,如您所见,我想将顶部图像分割成三个部分:两个半圆和它们之间的矩形。

我尝试了膨胀、腐蚀和重建的各种组合,以及各种聚类算法,包括 k-means、isodata 和高斯混合——所有这些都取得了不同程度的成功。

任何建议,将不胜感激。

编辑:这是我能够获得的最佳结果。这是使用活动轮廓分割圆形 ROI,然后应用 isodata 聚类获得的:

集群

这有两个问题:

  • 右下角星团周围的白色光晕,属于左上角星团
  • 右上和左下星团周围的灰色光晕,属于中心星团。
0 投票
2 回答
4245 浏览

c++ - OpenCV 凹槽检测

在此处输入图像描述我有一张有很多凹槽的表面的照片。在大多数情况下,凹槽的边缘形成平行线,因此 Canny 和 Hough 变换可以很好地检测线并进行一些表征。然而,在几个地方,凹槽被损坏,边缘不再平行。

我正在寻找一种简单的方法来检查某个边缘是否是直线,或者是否与直线有任何间隙或偏差。我正在考虑线性插值中的 R 平方参数之类的东西,但在这里我需要一个更依赖于位置的参数。您还有其他想法如何表征边缘吗?

我附上了一张精巧边缘检测后的开槽图片。在这里,边缘是直线,开槽很好。不幸的是,我目前无法获得凹槽损坏的图片。但是,在凹槽损坏的图片中,线条会有很大的间隙(至少是图片大小的 10%)或不平行。