我有一个jpeg。当然,它的颜色配置文件是 sRGB 。我将其加载到“图像”并调用
cvCvtColor(image, gray, CV_BGR2GRAY);
将其转换为灰度。当我在调试器中进入该例程时,我发现它将像素乘以这些值:
#define cscGr_32f 0.299f
#define cscGg_32f 0.587f
#define cscGb_32f 0.114f
Waaaait一分钟。这些是 NTSC RGB 的亮度值,而不是sRGB。此外,我无法看到它正在对伽马校正做任何事情。我很迷惑。当OpenCV对图像进行解码时,是否会删除伽马校正并转换为NTSC RGB?
奖金问题:是否有一个OpenCV论坛让大师们挂起?我用谷歌搜索了。
答案 0 :(得分:0)
我不知道色彩空间问题,但是关于红利问题:
https://sourceforge.net/projects/opencvlibrary/forums/forum/72228
https://sourceforge.net/projects/opencvlibrary/forums/forum/72227
答案 1 :(得分:0)
它忽略了。 OpenCV 通常 不执行伽马校正。好吧,it does, only when cvtColor
ing RGB-to-L*a*b*/L*u*v* (但是,怎么做?OpenCV 是否假设输入图像的伽玛值?)。