问题标签 [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 回答
133 浏览

matlab - 特定点的膨胀

我想知道是否可以仅在骨架的某些点上进行扩张。例如,如果我们在下面拍摄图像,是否可以仅扩大与矩形左上角和左下角对应的骨架点?(每个点的坐标都是已知的) 在此处输入图像描述

0 投票
0 回答
201 浏览

python - 数学形态学 - 盒子中球体的开运算

结构元素(球)半径为 1 的开运算的输出我在一个盒子里的一个球体上应用打开操作。框中的球体由应用了开口的二值图像表示。我使用的结构元素是一个不同半径的球。在应用打开操作时,如果我的结构元素(球)的半径小于球体的半径,那么我应该取回原始图像。但是,如果球的半径等于或大于球体,则输出图像应为空白。这是开盘操作应该做的。但是,当球半径小于球体半径时,我不会取回原始图像。我通过比较输入和输出球体的体积来知道这一点。我应该期待这样的结果还是我做错了什么?我正在使用 skimage 库来执行打开操作。我在下面附上了图片。输入和输出图像之间存在差异(应用打开操作后,某些点丢失。) TIA

半径为 2 的输入球体

这是我正在使用的一段代码。

0 投票
1 回答
476 浏览

python - 使用 Sci-Kit Image 包中的二进制打开操作进行粒度测量时出现内存错误

当我在 scikit-image 包中使用打开操作时出现内存错误(它使我的 RAM 饱和)。对于半径为 16 或更大的球体/球的 3-D 结构元素会发生此内存错误。我正在尝试使用粒度测量来测量图像(3D 数组)中对象的大小分布,因此我需要增加半径的结构化元素。内存需求也呈指数增长,我找不到解决办法。这个问题是否有一个简单的解决方案,以便我可以使用更大半径的结构元素?图像尺寸为 200X200X200。TIA

0 投票
1 回答
208 浏览

matlab - matlab:从骨架中检测更好的分支点

我有两个骨架图像,我在其中提取了分支点。不幸的是,分支点似乎不正确。有人对如何提取有效分支点(即“y”状形状点)有建议吗?

在下面的第一个示例中,应该只有一个分支点:

区域 1 原始图像 区域 1 叠加

在下面的第二个示例中,应该只有没有分支点:

区域 2 原始图像 区域 2 覆盖

0 投票
1 回答
9317 浏览

opencv - 形态学运算中的迭代与内核大小 (OpenCV)

我一直在 OpenCV 中使用 morph opening 来减少图像中 ROI 之外的噪声opencv,直到现在,每当我需要更高程度的降噪时,我只是随机增加内核大小或增加迭代次数,直到我满意为止. 结果是否存在显着差异,具体取决于您增加哪个/在给定情况下您将如何决定更改哪个?除了猜测和检查之外,我正在尝试提出一种更好的方法来更改(更改多少)参数。

0 投票
0 回答
51 浏览

matlab - 具有分解的形态结构元素的子图

我使用的是 MATLAB 2014b,因此该函数的strel行为方式与较新版本[1]略有不同。在任何情况下,我都会disk通过 8 个(实际上是 10 个)线性结构元素的近似值来生成一个成形的结构元素。

我想可视化这些线性结构元素,例如在子图中。不幸的是,在使用 MATLAB 这么多年之后,我仍然在理解如何从绘图中获得我想要的东西方面遇到很多问题。在这种情况下,我只能用“可比较”的比例来可视化它们,这样人们就可以注意到大小和方向的差异。(注意:出于打印原因,我使用imcomplement的是在白色背景上获得黑线,而不是相反。)

最小的代码是这样的:

如您所见,它会导致次优的子图:

总而言之,问题是:是否有可能获得一个可视化(一个子图或 10 个不同的图),其中 strels 具有大致相同的比例,并且它们足够可见,以便读者可以了解这是如何分解有效吗?


[1]在 MATLAB 2014b 中,要获取结构元素的邻域,您必须使用该方法getnhood,而在较新的版本中,您只需访问该字段Neighborhood

0 投票
1 回答
110 浏览

matlab - 在 MATLAB 中生成多尺度线性结构元素

我需要生成具有各种长度、度数和宽度的线性平面结构元素(用于形态图像处理)。我正在使用strel函数,它只有长度和度数作为输入。如何在 MATLAB 代码中为我的线性 SE 指定各种宽度?

请帮助我提前谢谢你

0 投票
1 回答
244 浏览

python - Python numpy 数组 - 关闭最小区域

我有一个代表图像的 2D 布尔 numpy 数组,我调用它skimage.measure.label来标记每个分段区域,给我一个 int [0,500] 的 2D 数组;该数组中的每个值都代表该像素的区域标签。我现在想删除最小的区域。例如,如果我的输入数组是形状 (n, n),我希望将所有 < m 像素的标记区域归入更大的周围区域。例如,如果 n=10 且 m=5,我的输入可能是,

然后输出是,

我研究了 skimage 形态操作,包括二进制关闭,但似乎没有一个适合我的用例。有什么建议么?

0 投票
3 回答
821 浏览

python - 用于平滑零区域的 Numpy 过滤器

我有一个整数 0 和更大的二维 numpy 数组,其中的值表示区域标签。例如,

我希望指数等于 0(即零区域)取其附近最常见的值。该操作将基本上关闭零区域。我尝试了膨胀、腐蚀、灰色闭合和其他形态学操作的多种变体,但我无法完全消除零区域(不会笨拙地混合其他区域)。一种体面的方法可能是定义一个仅对零进行卷积的内核,并使用过滤器区域中最常见的标签设置值。我不确定如何实现这一点。

0 投票
1 回答
1040 浏览

opencv - 为什么 OpenCV 中的结构元素不对称?

为什么 OpenCV 中的结构元素不对称?

返回

为什么不是

反而?

奇数大小的结构元素在 90 度旋转方面也是不对称的:

这样做的目的是什么?