问题标签 [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 投票
1 回答
417 浏览

computer-vision - 如何在 Python 中使用 skimage 删除图像中不必要的点并仅保留所需的集群?

我有一些包含某些聚类的图像,稍后我想在分类模型中使用它们。但是,在所有图像中,我都有不必要的点,我想从图像中删除它们。我正在尝试使用带有 skimage 的 Python 中的形态学操作来做到这一点,但没有运气。任何帮助将非常感激。这是一个示例图像:

示例图片(还不能发布图片)

0 投票
2 回答
116 浏览

opencv - OpenCV从二值图像中去除鸿沟

我有一个带有肋骨的推车的二进制阈值图像,其中一些已破裂。

阈值图像

我需要使用 cv2.distanceTransform() 之类的东西来获取分水岭算法的标记,但我需要消除裂缝。如果我保持裂缝,距离变换会将我的肋骨分成几块

距离变换图像

我尝试关闭扩张,但它会影响肋骨之间的球而且我没有让每根肋骨分开

当然,我在距离变换图像中尝试了不同的阈值,但是当我按阈值过滤球时,我也分裂了肋骨。

有没有像bay-removing算法这样的东西?或者有什么更好的方法吗?

0 投票
0 回答
402 浏览

python - 删除此图像中的白色部分

我有这张图像是减去两个图像的结果。 我的输入

我只想获得图像中标记的图像中的白色块。在thisthis和我自己以前的工作中的一些帮助下,我尝试了一些形态学操作。

不幸的是,我的代码没有给我我想要的东西。

关闭后的结果是这样的。 关闭结果

但是当我画出最大的轮廓时,我最终得到了这个。 轮廓结果

在某些图像中,我想要的部分与图像中标记的部分相似,但可能只有一半。知道如何确保块是最大的轮廓,以便我可以将其切掉吗?提前致谢。

0 投票
1 回答
163 浏览

matlab - matlab:限制二值图像的侵蚀

我正在尝试侵蚀二进制图像中的对象,以使它们不会变得小于某个固定大小。例如,考虑一个由连通分量(blob)组成的二进制映射,其中一个通过最小或最大反极(反周界)距离(即,彼此相距很远的两点之间的距离为它们可以在斑点的周边或轮廓上;如果轮廓由 N 个连续编号的点组成,则评估的距离将是点 1 和 N/2+1、点 2 和 N/2+2 之间的距离,等等。 )。鉴于这样的安排,我试图侵蚀这些斑点,直到距离度量达到指定的限制。如果斑点是简单的圆圈,则可以通过最终腐蚀然后膨胀到固定大小来实现效果;然而,这种程序会丢失不规则物体的轮廓。有没有办法使用 MATLAB 中的内置函数对连接的、不规则的组件实现这种效果?

0 投票
1 回答
117 浏览

image-processing - 由边界框特征划分的表面积是否有名称?

我正在编写一个连接的组件系统,我可以轻松计算的描述符之一是表面积以及组件的矩形边界框。

表面积除以边界面积叫什么?(或这两个参数的任何混合)。

例如,如果我的对象是一个矩形,则此参数将为 1.0。

0 投票
0 回答
299 浏览

opencv - 使用opencv在网格中查找最大值

我有一个距离变换的图像,我必须返回一个图像,其中每个像素都使用 3x3 网格在邻域中分配了一个最高值。怎么做?

我不确定形态稀释是否做同样的工作。就我而言,它返回相同的图像。

0 投票
0 回答
523 浏览

matlab - 沿骨架化 3d 蒙版的最短路径

我有一个带有曲线(骨架化数据)的 3D 数组,需要找到这些线上两点之间的最短连接路径。

如何在 Matlab 中找到沿 3D 骨架数组的两点之间的最短路径?

几个 这里mathworks 论坛上提出类似 问题。但大多数答案都指向这篇关于寻找最短路径的博客文章,它不会沿着骨架搜索。如果我试图沿着骨架强制它,它也会返回不在两点之间但离两点更远的路径。此外,人们建议的一些 matlab 函数只能处理 2D 数据(例如,可用于规避非骨架体素)。 bwdistgeodesic

使用文件交换中的两个函数。这就是我所做的:

到目前为止,这些结果很好:

在此处输入图像描述

右图中的白线显示骨架,蓝线显示种子。但是,如果我尝试应用距离变换,我找不到最短路径:

在此处输入图像描述

第一个发现几乎再次发现了整个骨架,第二个看起来像假的。区域最小值肯定不适合找到路径,但不确定还有什么。此外,我的距离计算没有考虑骨架,我试图在第二条路径中规避它,但也没有很好地工作。

我应该怎么做?


刚刚发现了一个叫做“快速行进”的东西,也许这会起作用。现在调查它。

0 投票
1 回答
45 浏览

image-processing - 磁盘大小为零时形态学打开将做什么

抱歉这个愚蠢的问题,我在图像上使用腐蚀然后膨胀,磁盘作为结构元素。如果我使用大小为零的磁盘,它将消除哪种类型的噪声?,还是什么都不做?(但我通过将它应用在一些影响它们的图像上观察到)。是消除脉冲噪声吗?(我的猜测,根据我的理解)。

0 投票
1 回答
381 浏览

c++ - OpenCV 修复扫描文档丢失(白色像素)扫描线

我有大约 500 页 PNG,代表 1980 年代早期 DIGITAL DECsystem-20 KL10PV 大型机的示意图(可公开获得)。扫描过程存在缺陷,因为随机散布在 PNG 中的是代表绘图中系统“盐”的白线。这干扰了我用来恢复原理图的过程——OCR 以及组件和互连网表的恢复。

放大的原理图页面的一部分

一个完整的示意图页面,在示例区域周围带有红色标记,显示了我正在谈论的问题

我可以使用什么神奇的 OpenCV 机制来检测这些白色条带并通过复制上面一行和下面一行的平均值或类似方法来“治愈​​”它们?一旦我找到一种系统地识别这些缺陷的机制,我希望尝试几种“修复”技术来找到最好的技术。

0 投票
1 回答
595 浏览

python - opencv(python)中图片形态的轨迹栏

所以我的问题是,当我去编辑照片时,我无法从轨迹栏获得最终设置来保存和更新图像。

我在 github 上找到了基于我的代码的代码:

https://github.com/opencv/opencv/blob/master/samples/python/morphology.py

这只是轨迹栏的实现。一旦你离开函数定义,它甚至不会在模式之间保存,最终图像根本不会改变。所以我尝试了其他方法。这是一种看起来很有希望的方法:

通过这种方式,当我更改轨迹栏设置以便能够看到它在做什么时,我无法更新图片,即使模式之间的中间图像不是,最终图像也是黑色的。