我正在使用Python进行OCR,目的是获取图像中字母的坐标。为了实现这一点,我使用skimage.measure中的regionprops返回区域的质心,并且如果一个质心与其他质心之间的距离小于某个值,我就删除该区域。我认为这样可以解决一些区域嵌套问题,但我忽略了一个问题,如果先检测到一个面积较小的区域(比如一个字母的一部分),所有更大的区域(可能包含整个字母)都会被忽略。以下是我的代码:
centroids = []
for region in regionprops(label_image):
if len(centroids) == 0:
centroids.append(region.centroid[1])
do some stuff...
if len(centroids) != 0:
distances = []
for centroid in centroids:
distance = abs(centroid - region.centroid[1])
distances.append(distance)
if all(i >= 0.5 * region_width for i in distances):
do some stuff...
centroids.append(region.centroid[1])
现在的问题是如何按面积对regionprops返回的列表进行排序? 有什么方法可以做到这一点吗?或者您是否可以提供一个更好的方法来避免一个区域在另一个区域内的问题,谢谢。