0

是否有可以计算给定 8*8 块或总图像亮度的平均对数的 c++ 函数或 opencv 库?我的目标是计算平均亮度并将其存储回块中。另外,是否有另一种方法可以用另一种适合人类视觉系统的科学方法来计算整体亮度或平均亮度?如果有人可以将我指向 C++ 中的库或函数,我将不胜感激。

4

1 回答 1

2

要计算以输入灰度图像中的每个像素为中心的 8x8 块的平均亮度,您可以使用包含值 1/64 即每个单元格中的 1/(8*8) 的 8x8 内核对该图像执行 2D 卷积.

这被称为归一化框过滤器/框模糊。

然后,您可以在 (x,y) 处对生成的图像进行采样,以产生以 (x,y) 为中心的 8x8 块的平均亮度。

OpenCV 手册中有用于归一化框过滤器的代码,用户可选择大小。

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

关于此值的“日志”,您可以使用 OpenCV 函数 cvLog 获取过滤图像的日志并获得结果。

于 2014-05-14T14:43:04.357 回答