Python - Найти центр объекта на изображении
У меня есть файл изображения, который имеет белый фон с небелым объектом. Я хочу найти центр объекта, используя python (Pillow).
Я нашел похожий вопрос в C ++, но нет приемлемого ответа -Как я могу найти центр объекта?
Аналогичный вопрос, но с неработающими ссылками в ответе -Какой самый быстрый способ найти центр многоугольника неправильной формы? (неработающие ссылки в ответе)
Я также читал эту страницу, но она не дает мне полезного рецепта -https://en.wikipedia.org/wiki/Smallest-circle_problem
Изменить: текущее решение, которое я использую, это:
def find_center(image_file):
img = Image.open(image_file)
img_mtx = img.load()
top = bottom = 0
first_row = True
# First we find the top and bottom border of the object
for row in range(img.size[0]):
for col in range(img.size[1]):
if img_mtx[row, col][0:3] != (255, 255, 255):
bottom = row
if first_row:
top = row
first_row = False
middle_row = (top + bottom) / 2 # Calculate the middle row of the object
left = right = 0
first_col = True
# Scan through the middle row and find the left and right border
for col in range(img.size[1]):
if img_mtx[middle_row, col][0:3] != (255, 255, 255):
left = col
if first_col:
right = col
first_col = False
middle_col = (left + right) / 2 # Calculate the middle col of the object
return (middle_row, middle_col)