Яркость 8 * 8 блока

Существует ли функция c ++ или библиотека opencv, которая может рассчитать средний лог яркости данного блока 8 * 8 или всего изображения? Моя цель — рассчитать среднюю яркость и сохранить ее обратно в блоке. Кроме того, есть ли другой способ расчета общей яркости или средней яркости в другом научном методе, который соответствует зрительной системе человека? Если кто-то может указать мне на lib или функцию в c ++, я был бы признателен за это.

0

Решение

Чтобы рассчитать среднюю яркость блока 8×8, центрированного на каждом пикселе входного изображения в оттенках серого, вы можете выполнить двумерную свертку этого изображения с ядром 8×8, содержащим значение 1/64, т.е. 1 / (8 * 8) в каждой ячейке. ,

Это называется нормализованным блочным фильтром / box blur.

Затем вы можете сэмплировать полученное изображение, например, в точке (x, y), чтобы получить среднюю яркость блока 8×8 с центром в точке (x, y).

В руководстве OpenCV есть код для нормализованного блочного фильтра, размер которого выбирается пользователем.

http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/filter_2d/filter_2d.html

Что касается «журнала» этого значения, вы можете использовать функцию OpenCV cvLog, чтобы взять журнал отфильтрованного изображения и получить свой результат.

2

Другие решения


По вопросам рекламы [email protected]