我有一张 jpeg。当然,它的颜色配置文件是 sRGB。我将它加载到“图像”中并调用
cvCvtColor(image, gray, CV_BGR2GRAY);
将其转换为灰度。当我在调试器中进入该例程时,我发现它将像素乘以这些值:
#define cscGr_32f 0.299f
#define cscGg_32f 0.587f
#define cscGb_32f 0.114f
等一下。这些是 NTSC RGB 而非 sRGB 的亮度值。此外,我看不到它对 Gamma 校正 有任何作用。我很困惑。 OpenCV 解码图像时,是否去除 Gamma 校正并转换为 NTSC RGB?
额外的问题:是否有大师们聚集的 OpenCV 论坛?我徒劳地用谷歌搜索。
最佳答案
它忽略了。 OpenCV 通常 不执行 Gamma 校正。嗯,it does, only when cvtColor
ing RGB-to-L*a*b*/L*u*v* (但是,如何?OpenCV 是否假定输入图像的 Gamma 值?)。
关于image-processing - OpenCV - 它如何处理颜色配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2227698/