问题标签 [image-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 投票
2 回答
587 浏览

java - 优化形态处理的性能

我正在使用 YCbCr 颜色空间进行人脸检测。当我将它涂抹在人脸上时,会有表示鼻子、眼睛和嘴巴的间隙,最终的贴片看起来像(a)。为了消除这些差距,我应用了形态膨胀操作,得到了(b)中所示的结果图像,但我的要求是获得像(c)中所示的补丁。这意味着我想从处理过的补丁中移除外部轮廓。

在此处输入图像描述

谁能建议我如何去除这些外轮廓?

0 投票
1 回答
829 浏览

matlab - 将图像中像素的 8-connectivity 更改为 4-connectivity

我有一个包含8 连接路径的 BW 图像

需要更改图像以使像素之间存在 4 连接,即可以遍历整个路径而无需对角线。

这个过程需要使用形态学操作来完成。

一个可能的输出是这个图像。4-连通路径

0 投票
1 回答
525 浏览

matlab - 如何在matlab中拉直手绘线?

有不规则的手绘线

我正在做一个需要检测角落的图像处理项目。但是当我尝试使用corner函数检测角时,它会将小位移检测为角,如图所示。角点检测错误

我尝试了从 0 到 0.24 的不同阈值,但无法获得食物结果。

所以我正在考虑调整(重绘)这条线,使其成为连接这些点的直线

编辑1:

以下是完整尺寸的原始图像和输出图像: 在此处输入图像描述

0 投票
1 回答
785 浏览

matlab - 如何在matlab中使用霍夫变换检测手绘线?

我正在做一个 matlab 图像处理项目,它基本上从手绘电路图的图像中提取组件和连接。

在预处理并获得骨架图像后,我尝试使用霍夫变换来检测线条,以便识别角和连接路径。

这是代码:

这是我执行时得到的输入和输出:

在此处输入图像描述

我需要检测几乎水平或垂直的所有线段,具有最小长度,由于手绘性质而具有一些不规则性。

在给定的屏幕截图中,输出图像仅显示检测到的几条线,并且部分检测到了一些线。它实际上应该检测用于连接组件的所有电线

如何调整霍夫变换函数或使用任何其他方法来实现此要求?

0 投票
1 回答
454 浏览

python - MATLAB 到 Python 代码转换 - imclose() 问题

我正在手动将 MATLAB 代码转换为 Python,但我被困在一行中。

MATLAB代码:

Python转换后的代码:

错误:

我该如何纠正?

0 投票
1 回答
698 浏览

matlab - Matlab中如何将不同的形状转换为圆形

我有这张图片:

在此处输入图像描述

有不同的形状,我想把每个形状都变成一个圆圈。每个圆必须有不同的半径,具体取决于形状的大小。我怎样才能做到这一点?使用形态学运算还是 Matlab 上有任何功能可以做到这一点?我使用函数 Regionprops 来检测每个单独的形状,然后我可以分别对每个区域进行操作。

在此处输入图像描述

0 投票
1 回答
205 浏览

matlab - 如何使用 Matlab 找到骨架图像中的角点?

我已经从输入图像中预置并创建了骨架图像。但我想不出找到角落的完美解决方案。我尝试使用霍夫变换来查找线,然后计算交点。但它不适用于给定的图像,因为线条不是完美的直线。

请有任何建议

骨架图像

0 投票
1 回答
692 浏览

ios - 在 iOS OpenCV 中优化形态学运算

我正在为我的 iOS 应用程序使用 openCV 框架。我正在尝试寻找占整个过程 53% 的形态学操作的优化。以下是形态学运算的代码:

如您所见,我正在应用腐蚀,然后是膨胀,这相当于关闭操作。我已经尝试使用 MorphologyEx 进行关闭操作;但是性能还是一样的(包含在上面的代码中)有没有更好的优化方法?

0 投票
1 回答
638 浏览

c++ - 如何在 OpenCV 中使用 Matlab 的 512 元素查找表数组?

我在 OpenCV 中设计形态学操作。我试图模仿函数removebridgeMatlab 的 bwmorph。为此,我参考了 bwmorph.m 的函数定义,在那里我获得了用于删除和桥接的查找表数组。

在该步骤之后,Matlab 和 OpenCV 的过程相同。

问题是 Matlab 使用 512 元素(9 位)查找表方案,而 OpenCV 使用 256 元素(8 位)查找表方案,如何在 OpenCV 中使用 Matlab lutarray?

在做了一些研究后,我发现了这篇文章

当他们说他们将图像从 0-512 “拆分”然后分成两部分时,他们是什么意思?

上述方法是否正确?有没有其他方法可以做到这一点?

0 投票
1 回答
312 浏览

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

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

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

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