我正在尝试计算两个同心圆之间的区域中的所有红点。找到红点很容易,我只需搜索使用一个红色的所有循环,但是问题在于发现轮廓内部,尤其是当我尝试越过圆之间的所有区域时。
代码为bellow:
img2 = image.open(" c: python27 image.png")
pixels = list(img2.getData())
对于像素中的像素:
如果Pixel ==(255,0,0):打印Pixel
波纹管您可以看到我正在努力尝试我的算法的示例图片。
在此处输入图像描述
如果您知道圆的中心在哪里,则简单地计算红点和中心之间的距离。这告诉您您的点是哪个圆圈。
如果您不知道圆圈在哪里应用来查找圆圈的技术。例如,霍夫变换。
如果您开始扫描图像边缘中间的一行像素从左到右,则可以确定何时像素为黑色。
当您录制一系列白色,然后是黑色的像素时,您知道您已经找到了一个圆圈的边缘。从右向左扫描同一行将使您弄清楚圆的另一侧。然后,您可以从直径计算该圆的方程。
如果您在向中心移动时继续记录每个圆圈,则会找到每个圆的方程式。然后,当您找到红色像素时,您可以通过使用红色像素的(x,y)坐标来确定它们所属的区域和圆的方程。