Я выполняю небольшой равномерный алгоритм квантования на сером изображении. Когда я делаю цикл сам, генерируемое изображение соответствует ожидаемому (n_levels отличается серыми тонами). Этот код очень медленный, как и ожидалось.
Когда я использую операторы numpy для ускорения кода, я получаю другой результат (все белое изображение). Кажется, я не могу понять, почему ... Я предполагаю, что это преобразование типов данных, но я не смог решить эту проблему.
Помогите ли вы в этом?
import cv2
import numpy as np
frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
for y in range(0, h):
for x in range(0, w):
frame_gray[y, x] = round(frame_gray[y, x] * n_levels / 255) * 255 / n_levels
# DIFFERENT RESULT THAN
np.rint(frame_gray * n_levels / 255) * 255 / n_levels