Я делаю OCR с питоном, чтобы получить координаты букв на изображении, я беру центроид области (возвращенный regionprops из skimage.measure), и если расстояние между одним центроидом по сравнению с другими центроидами меньше некоторого значения, я отбрасываю эту область, хотя это решило бы проблему нескольких областей, одна внутри других, но я пропустил это, если область с меньшей площадью обнаруживается первой (например, только часть буквы), все большие области (который может содержать всю букву) игнорируются, вот мой код
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, по площади? и как это сделать? Или, если вы можете дать лучший способ избежать проблемы региона внутри других регионов, заранее спасибо