如何在二进制图像线中找到交叉点?

Ale*_*lex 6 matlab image-processing computer-vision

我有一个带有曲线的二进制图像,如下所示,但我想知道如果它们被扩展,我可以找到它们相交的位置.

所以你能给我一些关于我如何能够做到的想法:

  • 将线端点延伸到同一方向,
  • 如何找到交叉点?

我曾考虑使用霍夫变换来寻找线条,然后使用交叉点,但在某些图像中,我的线端点并不完全笔直.有没有办法可能只在它的末尾找到线的方向而不是整条线,因为它是二进制图像?

谢谢你的帮助 C 一个 b

Dr.*_*ius 4

应用膨胀然后腐蚀将扩展您的端点,如下所示:

(*Code in Mathematica*)
Erosion[Dilation[i, 10], 10]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

完整的解决方案可能是这样的:

r = Dilation[MorphologicalBranchPoints[
   Thinning[Binarize@Erosion[Dilation[i, 10], 10], 10]] // Colorize, 3]
ImageAdd[i, r]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述