我正在尝试计算两个同心圆之间区域中的所有红点。查找红点很容易,我只是使用for循环搜索所有红色,但是问题是要在轮廓内找到该点,尤其是当我尝试遍历圆之间的所有区域时。
代码如下:
img2 = Image.open(“ C:\ Python27 \ Image.png”)
pixels = list(img2.getdata())
以像素为单位:
如果pixel ==(255,0,0):打印像素
下面您可以看到我正在尝试使用算法的示例图片。
答案 0 :(得分:1)
如果您知道圆的中心在哪里,您只需计算红点和中心之间的距离。这会告诉您圆点所在的圆圈。
如果您不知道圈子在哪里,可以应用寻找圈子的技术。例如霍夫变换。
答案 1 :(得分:0)
如果您从左到右开始扫描图像边缘中间的一行像素,则可以确定像素何时为黑色。
当您记录一系列白色,黑色然后是白色像素时,您知道已经找到了圆的边缘。从右到左扫描同一行将使您找出圆的另一侧。然后,您可以根据直径计算该圆的方程。
如果继续向中心移动时记录每个圆,则将找到每个圆的等式。然后,当您找到红色像素时,可以通过使用红色像素的(x,y)坐标和圆的方程式来确定它们属于哪个区域。