3

我是 Python 新手,如果有人能指出正确的方向或更好的例子,我将不胜感激。

我正在尝试编写一个程序来将图像(jpeg 或任何图像文件)转换为 gcode 或 x/y 坐标。我需要跟随图像中对象的轮廓,而不是扫描 x 和 y 方向。例如,一个有外圈和内圈的甜甜圈,或者一个有面部轮廓和器官内部轮廓的脸。

我知道有一种叫做行进广场的东西,但不知道如何在 python 中做到这一点?

谢谢你。

4

3 回答 3

1

您可以在 scikit-image 中找到行进方块的实现:https ://scikit-image.org/docs/dev/auto_examples/edges/plot_contours.html

于 2012-10-08T07:26:41.067 回答
1

您还可以查看 OpenCV 的findContours 函数,它可以非常快速地执行相同的操作。它不是纯 Python,但有一个非常好的 Python 绑定,它使用 numpy 数组等……(新的“cv2”模块)。

于 2012-10-08T07:53:41.610 回答
0

我建议以下程序:

1)将您的图像转换为二进制图像(nxn numpy 数组):1(对象像素)和 0(背景像素)

3)既然你想跟随一个轮廓,你可以把这个问题看作:找到属于同一个对象的所有对象像素。这可以通过 Connected Components Labeling Object 解决。

4) 一旦你确定了你的对象,你可以在每个对象上运行 Marching squares 算法。MS包括将您的图像分成n个正方形,然后评估给定正方形的所有顶点的值。MS将通过分析每个正方形并找到给定正方形的至少一个顶点的值为0而该正方形的另一个顶点的值为1的边界来找到边界->边界/轮廓包含在这样的正方形。

于 2019-08-09T12:43:13.667 回答