opencv - 使用 opencv 跟踪模式,使每个节点仅访问一次(欧拉路径)

标签 opencv bioinformatics biopython

这是我整整一年以来一直试图解决的问题。直到年底都没有成功。我必须向stackoverflow专家寻求帮助和具体解决方案。

我的问题陈述:

我一直在研究一些设计模式,如果欧拉路径存在(如下图所示),我想以编程方式进行跟踪。下面是图案和我想画它们的方式(gif)。

我想达到的目标:

将设计模式图像作为输入。我想在单个笔划中跟踪设计图案图像,如 gif 中所示(gif 动画只是如何在单个笔划中绘制图案的示例)。一旦我以单笔划方式(欧拉路径)获得图像的 x 和 y 坐标。我会将这些坐标输入到我的程序中以跟踪这些坐标。

动画中需要注意的地方:

1) 基本上它是一个未检测到的图形(节点是你的形状的顶点,边缘如果存在是两个顶点之间的笔画)。 (欧拉路径)

以下是我用来构建图案的 15 种独特形状:

enter image description here

我有超过 400 种模式(下面已经显示了 3 种模式),直到现在我还无法为此找到通用的解决方案。 我已经手动获取了图案的 x y 坐标并将其按顺序放置。但这根本不可扩展。

如何追踪每个节点只被访问一次的模式?:

第一种图案及其绘制方法:

enter image description here

enter image description here

第二种图案及其绘制方法:

enter image description here

enter image description here

第三种图案及其绘制方法:

enter image description here

enter image description here

最佳答案

如果您仍在为上述问题苦苦挣扎,也许您可​​以研究一下旅行商问题。 TSP 只访问城市一次。如果在您的情况下每个节点都是您的删除线的交叉点,那么这可能会有所帮助。

检查 here用于查看python代码。我已经检查过,打印语句看起来不错且结构化。 cMinor 干得好!

根据讨论进行编辑:file 1 , file2 , file3 .

关于opencv - 使用 opencv 跟踪模式,使每个节点仅访问一次(欧拉路径),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47164127/

相关文章:

python - 如何将复杂包的 python 类型提示指定为 opencv 或 tensorflow?

c - 两个位置之间的人口计数

python - 查找 ID 坐标

带有 .pdb 文件的 python

python - OpenCV 仿射变换不会执行

python - “NoneType”对象没有属性 'clip' `` `cv2_imshow( )`` `

r - 从 R 内部堆积床文件

python - 使用 Biopython Entrez 从 fasta 记录访问序列元素

python - 频率加起来不为一

opencv - PyLint 不识别 cv2 成员