Я почти уверен, что совершил глупую ошибку, но я не могу найти ее довольно долгое время.Почему здесь не работает декремент?
Я (успешно) загружаю некоторые изображения, преобразую их в оттенки серого и повышаю до b & w. Затем я хотел создать метод, который оценивает каждую строку пикселей, измеряя его значение цвета avg (0 ... 255) и давая мне номер строки первого, который ниже определенного порогового значения. Он работает, но расширение метода делать то же самое со дна не делает. Вот как это выглядит:
t_thresh_hor = 210.0
def core_text_loc(image):
height, width = image.shape
height = height - 1 # to adjust for starting with 0
width = width - 1 # to adjust for starting with 0
top_trim = 0
bot_trim = height
i = 0
while i < height and top_trim == 0:
row = image[i, 0:-1]
i = i + 1
if numpy.mean(row) < t_thresh_hor:
top_trim = i
# here it stops working
i = height
while i > 0 and bot_trim == height:
row = image[height, 0:-1]
if numpy.mean(row) < t_thresh_hor:
bot_trim = i
i = i - 1
return(top_trim, bot_trim)
Я знаю, что порог является правильным (работает, когда я вручную получить доступ к конкретной линии), но bot_trim всегда возвращает высоту изображения, то есть он остановился на первой итерации (?). Что я сделал не так?
EDIT: Пример случай: Я проверяю его на две фотографии: первый из них является 4724x3177, а выход: top_trim: 1216 (правильный) bot_trim: 4723 (должно быть ≈ 4400) второй one4705 3177 top_trim: 315 (правильный) bot_trim: 4704 (должно быть ≈ 4400)
Каков ожидаемый результат? Пожалуйста, укажите пример. –