Создал программу, которая сшивает изображения в панораму, и для сохранения масштабности программа искажает контуры результата. Осталось довести этот результат до конца.
Была идея найти крайние нулевые пиксели и обрезать фотку по ним, так получится прямоугольное изображение, уже без искажений контура, а так же при обрезке теряется минимальное количество информации.
Вот код, который должен это сделать, однако почему-то он не находит эти самые нулевые пиксели(
import numpy as np
from PIL import Image
def crop_image(img):
distorted_image = np.array(img)
first_zero_row = np.where(distorted_image.sum(axis=1) == 0)
first_zero_column = np.where(distorted_image.sum(axis=0) == 0)
# Обрезать искаженное изображение по первым нулевым пикселям, если они существуют
if first_zero_row.size > 0 and first_zero_column.size > 0:
cropped_image = distorted_image[:first_zero_row, :first_zero_column]
else:
cropped_image = distorted_image
return cropped_image
Если Вам не сложно, помогите доработать код, или может вообще начать заново.
Вот пример искаженного изображения:
Your text to link here…