我是 Python 新手,如果有人能指出正确的方向或更好的例子,我将不胜感激。
我正在尝试编写一个程序来将图像(jpeg 或任何图像文件)转换为 gcode 或 x/y 坐标。我需要跟随图像中对象的轮廓,而不是扫描 x 和 y 方向。例如,一个有外圈和内圈的甜甜圈,或者一个有面部轮廓和器官内部轮廓的脸。
我知道有一种叫做行进广场的东西,但不知道如何在 python 中做到这一点?
谢谢你。
我是 Python 新手,如果有人能指出正确的方向或更好的例子,我将不胜感激。
我正在尝试编写一个程序来将图像(jpeg 或任何图像文件)转换为 gcode 或 x/y 坐标。我需要跟随图像中对象的轮廓,而不是扫描 x 和 y 方向。例如,一个有外圈和内圈的甜甜圈,或者一个有面部轮廓和器官内部轮廓的脸。
我知道有一种叫做行进广场的东西,但不知道如何在 python 中做到这一点?
谢谢你。
您可以在 scikit-image 中找到行进方块的实现:https ://scikit-image.org/docs/dev/auto_examples/edges/plot_contours.html
您还可以查看 OpenCV 的findContours 函数,它可以非常快速地执行相同的操作。它不是纯 Python,但有一个非常好的 Python 绑定,它使用 numpy 数组等……(新的“cv2”模块)。
我建议以下程序:
1)将您的图像转换为二进制图像(nxn numpy 数组):1(对象像素)和 0(背景像素)
3)既然你想跟随一个轮廓,你可以把这个问题看作:找到属于同一个对象的所有对象像素。这可以通过 Connected Components Labeling Object 解决。
4) 一旦你确定了你的对象,你可以在每个对象上运行 Marching squares 算法。MS包括将您的图像分成n个正方形,然后评估给定正方形的所有顶点的值。MS将通过分析每个正方形并找到给定正方形的至少一个顶点的值为0而该正方形的另一个顶点的值为1的边界来找到边界->边界/轮廓包含在这样的正方形。