给定一张完全黑白的图片(因此唯一的颜色是黑色或白色,没有灰色阴影),上面有很多不同大小的圆圈(黑色),这是找到圆圈中心坐标的快速方法和圆圈的大小并将其存储为词典条目?当我指的是快速时,我的意思是,如果我每秒调用此圈子查找功能10或20次,则不会太滞后.另外,我做了一些研究,发现我可以通过在圆上取三个点来找到圆的中心或半径,这可以帮助吗?
解决方法:
首先想到的是逐像素扫描图像,寻找黑色像素.当您找到一个时,开始进行洪水填充.洪水填充完成后,测量左,右,顶部和底部范围,然后通过除以2得出中心点.这假定没有一个圆重叠.我敢肯定,可能有一些更优化的方法可以避免泛滥成灾.
优化#1:
当您找到第一个黑色像素时,请沿着所有具有至少一个白色邻居的8个邻居查找相邻像素,而不是进行泛洪填充.继续跟随这些像素,直到再次击中第一个像素.那应该给您轮廓,从那里您可以像我最初的答案一样导出宽度,高度和中心点.
优化#2:如果圆的尺寸最小,则不必逐像素扫描.您可以扫描以最小尺寸隔开的水平和垂直线,以寻找黑色像素.