HDR是如何工作的,如何使HDR效果



我读过一篇博客 图像增强的直方图均衡 它给出了将普通图像转换为 HDR 图像的 7 个步骤(下图)。据说,用于直方图均衡的C/C++程序可以使用Open Computer Vision Library或OpenCV轻松编写。此类计划的主要步骤包括:

  1. 读取输入图像。由于OpenCV,这几乎可以是任何图像格式。此输入图像包含 n 像素:n = height × width

  2. 从RGB(由OpenCV以蓝色,绿色,红色的顺序存储)转换为HSV:色调,饱和度和值。

  3. 计算输入图像的直方图。这是一个 256 值数组,其中 H[x] 包含值为 x 的像素数。

  4. 计算直方图的累积密度函数。这是一个 256 值数组,其中 cdf[x] 包含值为 x 或更小的像素数: cdf[x] = H[0] + H[1] + H[2] + ... + H[x]

  5. 遍历整个图像中的n像素,并替换每个i点的值:V[i] <-- floor(255*(cdf[V[i]] - cdf[0])/(n - cdf[0]))

  6. 将图像从HSV转换回RGB。

  7. 以所需的格式和文件名保存图像。

在第 3 步,我不明白H[x]是什么?x是指 R、G、B 或 H、S 或 V 值吗?另外,在步骤5中,值的含义i

第一个问题:

H(x) 是图像的直方图。

强度水平在 [0, 255] 范围内的数字图像的直方图是一个离散函数 h(r_k) = n_k,其中 r_k 是第 k 个强度值,n_k 是图像中具有强度r_k的像素数。

来自:冈萨雷斯/伍兹的数字图像处理第三版,第120页

第二个问题:我是什么?

i 是遍历图片的变量。

相关内容

  • 没有找到相关文章