问题标签 [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.
python - 在 python 中命中或错过形态以查找图像中的结构并没有给出所需的结果
我正在使用形态学包来创建我们正在使用的图像的骨架化版本。我们能够检测骨架化版本中的末端,但也希望能够检测结构产生新分支的点。我们开始尝试使用 3 个不同的矩阵来检测它们,命名为 h1,h2,h3。目前我们没有为过滤填充未命中矩阵,这是我们稍后将尝试添加的内容。如果我们想稍后尝试过滤,我们将使用 5x5 矩阵以便于编辑。
问题是即使矩阵 h1 和 h2 中的模式存在于骨架化版本中,它也无法检测到它们。矩阵 h3 确实有效。我似乎无法找到为什么会发生这种情况。
我们拍摄的原始图像。
图片:
骨架化的照片,我们还使用修剪使末端(分支的终点)更平滑。
python-2.7 - 如何在骨架迷宫图像中找到最短路径?
我正在使用图像处理和NetworkX搜索算法解决迷宫问题,需要找到这些线上两点之间的最短连接路径。
当我运行上面的代码时,我得到以下输出。
原始输入迷宫图像:
--
处理图像后:
--
XY 坐标上的节点点:
--
路径信息:
我可以成功执行图像处理操作,但是搜索算法会找到两个节点之间最短的鸟类飞行距离。我想找到沿着骨架的最短路径。
当我在这个github repo上工作时, 向我展示了使用 NetworkX 库解决这个问题,但我无法解决它,因为它没有提供任何细节。
如何使用图像处理和任何搜索算法找到沿着迷宫图像骨架的最短路径?
提前致谢。
python - matlab 函数 strel("line") 到 python
我想在 python 中使用 matlab 函数 strel("line")
我找到了像scikit-learn / opencv / mahotas这样的 python 库
但我找不到它。
最后,我在pymorph 'seline'中发现了类似的函数,但它与 matlab strel 函数不同。
具体来说,我想使用(或实现) strel("line") 并旋转它。
像 strel("line", length, degree )
Matlab 示例 输出是
像这样。
谁知道matlab的strel("line",length,degree)函数的算法或者python库等于strel("line",length,degree)的,请告诉我。谢谢你。
c++ - 二维字符数组的膨胀/腐蚀
我试图弄清楚为什么我的扩张图像功能没有产生正确的输出。
我的目标是变成这样:
进入这个:
对于每个扩张周期。
我没有想到它,但我也需要逆向侵蚀。
到目前为止,这就是我想出的(程序在命令行中使用用户输入argv
):
dialationn
到目前为止我实现的函数使用双循环循环遍历二维数组,当它找到应该被扩张的字符时,它会检查边界是否在附近并相应地设置坐标。
matlab - 提取图像中特定线或线段的一般方法
我有这个示例裁剪图像:
我需要使黑色粗线(水平和垂直)消失或提取,同时保持所有其他信息完好无损。这些特定的线条是 4 或 5 像素厚。我试过了:
- 如果图像被读取为 NumPy 数组,则对具有更多零/一的行进行简单过滤,但过滤条件不会终止,直到单行剩下零或一。
- 使用简单内核 (3,3) 进行侵蚀,但会留下一些噪音,因为有些符号也是厚黑色
- 使用图像宽度宽度的线结构元素进行膨胀,但连接不同符号的线段大小存在压倒性变化,导致每个小线段的基本信息丢失。
有人可以就什么样的结构元素、应该考虑什么样的形态学操作或任何其他聪明的启发式方法提供见解或指导?如果完成了粗黑线的提取,则输出将类似于以下随机线段网格:
python - numpy 向量化/更有效的 for 循环
我正在对图像进行侵蚀。图像已相应填充。简而言之,我有一个交叉元素(+),我将它放在图像的每个像素上,并从上方、下方、右、左和其自身的像素中选择该像素的最低值。
它效率低下,我无法找出矢量化版本。这必须是可能的,因为所有计算都是相互独立完成的。
基本上:
最终图像中的每个像素 = 原始图像的 min(pixel, above, below, left, right)
这就是我现在所拥有的。还是2圈。