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

php - 从图像中分离网格单元并裁剪它们

我一直在尝试获取每周菜单 pdf 并将其分成网格框以进行裁剪,然后使用TesseractOCR进行 OCR 。

我已经看到lineJunctions在这里可能会有所帮助,但无法在 imagemagick php 文档中找到它们。我还在一个类似的 stackoverflow question 中看到了 Hough Lines,但再次无法在 php 文档中找到它们。

图。1

图 2

图 3

图 4

图 5

通过这样做,我最终得到了一个带有框的图像,如果我可以获得 ax,y,width 和 height,我应该能够获得坐标,但是它错过了右下角并且非常混乱。我确信必须有更好的方法。

图像被缩小,然后我计划将坐标放大 6 倍,如$im->resizeImage(). 有没有更好的方法可以解决这个问题?

0 投票
1 回答
1040 浏览

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

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

返回

为什么不是

反而?

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

这样做的目的是什么?

0 投票
1 回答
196 浏览

matlab - 这张图片膨胀的结果是什么?

我有以下矩阵:

我想用以下结构元素来扩展它:

我已经在 Matlab 上进行了膨胀,但结果与我手动做的不匹配。所以我想我在这里遗漏了一些东西。据我所知,如果结构元素的任何“1”触及矩阵中的任何“1”,则意味着它是命中,当前窗口的中心应设置为 1。如果我在这种时尚我会得到关注(不考虑边缘):

但是Matlab给出了以下结果:

在不考虑边缘的情况下,它几乎看起来像我的结果,但在我的结果中以粗体样式设置的像素为“1”,但在 Matlab 的结果中为“0”。我究竟做错了什么?那些'0'下面的像素是原始图像中的'1',当窗口的中心在那些'0'上时,结构元素在那个空间有'1',所以它是一个命中并且中心必须设置为'1'但是Matlab 不这样做。谁能解释我为什么?我在这里错过了什么重要的东西吗?

0 投票
0 回答
243 浏览

python - 使用 Python 的分水岭变换获取山脊骨架

我目前正在尝试将最初用 IDL 编写的代码翻译成 Python,并且完全卡在了使用 IDL 中的分水岭函数来获取“山脊骨架”的部分代码(原作者所谓的代码)的图像。请参阅下面的输入和结果示例图像。

输入图像 输入图像

结果 结果

产生这个的 IDL 代码行读取

不幸的是,我对使用分水岭等一无所知,但从我用 OpenCV 或 scikit-image 可以看出,你需要调用的不仅仅是图像本身吗?例如,我看到诸如标记之类的东西。我猜测的connect=8部分与最近的邻居有关,但我不知道如何在我遇到的任何 Python 包中实现这一点。

我似乎无法复制 IDL 给出的输出,所以我希望比我更专业的人可能会认识到这种结果并能够为我指明正确的方向?谢谢。

0 投票
0 回答
386 浏览

python - scipy.ndimage.morphology.grey_dilation 对偶数大小的结构元素有什么作用?

关于形态学运算的一个问题

假设我有以下输入图像(称为 I):

然后我想用大小为 3*3 的平方结构元素进行灰度膨胀,这是要调用的命令:

这是结果:

这似乎是合乎逻辑的,但现在假设我将对 2x2 structuring_element 做同样的事情:

这是新的结果:

有人可以解释一下当输入一个大小均匀的结构元素时,函数的执行情况是什么?

0 投票
1 回答
3694 浏览

python - 选择正确的结构元素

我正在创建一个程序来自动将太阳能电池从光伏模块中分离出来,我首先使用自适应阈值对图像进行阈值处理以获得以下图像

阈值图像

之后,我打算通过使用膨胀来去除单元边界内的黑色像素,为此我使用了大小为 (10,10) 的椭圆结构元素并获得了以下图像

膨胀后的阈值图像(结构元素大小(10,10)

如您所见,仍然有一些黑色像素,现在如果我增加结构元素的大小,我会丢失单元格边界

膨胀后的阈值图像(结构元素大小(15,15)

我已经尝试了其他可用的结构元素,例如交叉和矩形,但没有任何成功,因此我需要定义一个自定义内核并且不知道如何定义一个。

阈值处理前的原始图像

0 投票
0 回答
1496 浏览

python-3.x - 输出数组图像的布局与 cv::Mat 不兼容(step[ndims-1] != elemsize 或 step[1] != elemsize*nchannels)

我正在尝试在 MRI 切片的特定部分绘制轮廓。代码如下:

我在这里提到了类似的其他问题,并应用了他们建议的解决方案。不过,我一直收到同样的错误

0 投票
1 回答
775 浏览

matlab - matlab中的自适应腐蚀和膨胀

我正在实施自适应扩张和侵蚀。这是较早的问题的后续问题。我写了这段代码:

但我没有获得良好的侵蚀和扩张结果。我不知道用于计算 LST 和特征值的代码是否有问题!

这些是示例图像及其与我的代码的膨胀:

轮胎.tif

轮胎稀释剂.tif

0 投票
1 回答
550 浏览

python - OpenCV的扩张不同于scipy、matlab

scipy.ndimage:

开放式简历:

似乎 ndimage 将内核放置在图像的一个 1 像素上并将其扩展到内核为 1 的任何位置,而 OpenCV 将内核放置在每个像素上并将其设置为其邻居的最大值(当内核为 1 时)。

哪种行为是正确的?维基百科的动画似乎偏爱 OpenCV。如果我调用了错误的函数,有没有办法用 scipy 重现 OpenCV 的行为?

旁注:

  • matlab 表现得像 scipy
  • scipy 的行为也发生在 grey_dilation(尽管我不希望它改变行为)
0 投票
0 回答
261 浏览

python-3.x - 灰度图像的膨胀方法的实现是什么?

我编写了一个程序来实现灰度图像的膨胀方法,而不使用任何预定义的函数。这是我用python写的代码:

我在这里使用了 3X3 内核。如果还有其他错误,请纠正。我是一个初学者,只是好奇在不使用直接函数的情况下做到这一点。