我正在尝试检测某些表面内的圆圈,然后获得质心和区域。 我通过检查区域的偏心率和我想要的区域范围来做到这一点,并且它工作正常。如下图所示。 检测到小圆圈。
但有时候,由于它们的偏心,也可以检测出与正方形相似的结构。 例如这张图片:
检测到蓝色区域。 所以我的问题是如何区分它们? 我不想检测广场。 这是代码:
myimage = np.loadtxt("file_113.dat")
#detecting edges
edges = feature.canny(myimage, sigma=3, low_threshold=-0.2,high_threshold=0.2)
labeled_image = label(edges)
#Locating center of each region
regions = regionprops(labeled_image)
for region in regions:
if region.area < 100 and region.eccentricity <= 0.4:
# eccentricity = 0 is a perfect circle
y0, x0 = region.centroid
print ("region " + str(counter) + " center at (y,x): " + str(y0) + "," + str(x0))
print " region area = " + str(region.area)
print " region ecc = " + str(region.eccentricity)