Я хотел использовать код этого парня для расчета интегрального изображения и областей суммирования для функций Хаара, потому что не мог найти ничего другого надежного и не хотел делать это сам. Но теперь кажется, что этот код все равно не работает, и я не могу заставить его работать, но хочу, чтобы он работал, используя дополненное интегральное изображение.
Я просто не совсем понимаю. понять, что вводить для функции sum_region. Он вычисляет интегральное изображение, используя to_integral_image(), и это правильно, но я не понимаю, что такое функция sum_region, которая, похоже, у меня не работает когда я тестировал это, все переворачивание координат и заполнение интегрального изображения смутило меня, и я не могу разобраться в этом, это действительно расстраивает.
Интеграл для меня был рассчитано идеально, но Функция sum_region(), похоже, просто не работает. Я попробовал добавить по одному к обеим координатам Bottom_right, но в крайних случаях это не сработало.
Если бы кто-нибудь мог помочь мне преодолеть этот раздражающий умственный туман, я бы очень ценю это.
import numpy as np
def sum_region(integral_img_arr, top_left, bottom_right):
"""
Calculates the sum in the rectangle specified by the given tuples.
:param integral_img_arr:
:type integral_img_arr: numpy.ndarray
:param top_left: (x, y) of the rectangle's top left corner
:type top_left: (int, int)
:param bottom_right: (x, y) of the rectangle's bottom right corner
:type bottom_right: (int, int)
:return The sum of all pixels in the given rectangle
:rtype int
"""
# swap tuples
top_left = (top_left[1], top_left[0])
bottom_right = (bottom_right[1], bottom_right[0])
if top_left == bottom_right:
return integral_img_arr[top_left]
top_right = (bottom_right[0], top_left[1])
bottom_left = (top_left[0], bottom_right[1])
return integral_img_arr[bottom_right] - integral_img_arr[top_right] - integral_img_arr[bottom_left] + integral_img_arr[top_left]
Я пробовал ввести обычный индекс индексированного массива с нулевым значением и распечатать результаты, но заполнение и переворачивание координат просто сбивают с толку, и я не могу уяснить это все.
Это то, что я использовал для тестирования.
import numpy as np
from integral_image import *
original_image = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
],)
integral = to_integral_image(original_image)
print(original_image)
print(integral)
# region in the original image
top_left = (0,0)
bottom_right = (2,1)
sum = sum_region(integral, top_left, bottom_right)
print(f"Original Top left: {original_image[top_left]}")
print(f"Original Bottom Right {original_image[bottom_right]}")
print(f"Sum: {sum}")
Подробнее здесь: https://stackoverflow.com/questions/792 ... gral-image
Вычисление суммы прямоугольных характеристик волос с использованием интегрального изображения ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Обнаружение прямоугольных портретов людей на изображениях с помощью OpenCV
Anonymous » » в форуме JAVA - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-