在图片中两个同心圆之间获取数据



我正在尝试计算两个同心圆之间的区域中的所有红点。找到红点很容易,我只需搜索使用一个红色的所有循环,但是问题在于发现轮廓内部,尤其是当我尝试越过圆之间的所有区域时。

代码为bellow:

img2 = image.open(" c: python27 image.png")

pixels = list(img2.getData())

对于像素中的像素:

如果Pixel ==(255,0,0):打印Pixel

波纹管您可以看到我正在努力尝试我的算法的示例图片。

在此处输入图像描述

如果您知道圆的中心在哪里,则简单地计算红点和中心之间的距离。这告诉您您的点是哪个圆圈。

如果您不知道圆圈在哪里应用来查找圆圈的技术。例如,霍夫变换。

如果您开始扫描图像边缘中间的一行像素从左到右,则可以确定何时像素为黑色。

当您录制一系列白色,然后是黑色的像素时,您知道您已经找到了一个圆圈的边缘。从右向左扫描同一行将使您弄清楚圆的另一侧。然后,您可以从直径计算该圆的方程。

如果您在向中心移动时继续记录每个圆圈,则会找到每个圆的方程式。然后,当您找到红色像素时,您可以通过使用红色像素的(x,y)坐标来确定它们所属的区域和圆的方程。

最新更新