用Python中的marching square跟踪图像轮廓

2024-06-11 05:13:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我知道有一种叫做行进广场的东西,但不知道怎么用python来做?在

谢谢。在


Tags: 图像程序图像文件方向例子jpeg物体轮廓
3条回答

我建议以下程序:

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

3)因为你想跟踪一个轮廓,你可以把这个问题看作:找到属于同一个物体的所有物体像素。这可以通过连接的组件标签对象来解决。在

4)一旦你确定了你的目标,你可以在每个对象上运行行军方块算法。MS的原理是将图像分成n个正方形,然后计算给定正方形的所有顶点的值。MS将通过分析每个正方形并找出其中一个给定正方形的顶点的值至少为0而该正方形的另一个顶点的值为1的值来找到边界;边界/轮廓包含在该正方形中。在

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

您可以在scikit图像中找到一个行军方块的实现:http://scikit-image.org/docs/dev/auto_examples/plot_contours.html

相关问题 更多 >