【发布时间】:2015-11-27 04:14:49
【问题描述】:
我使用的是 OpenCV 3.0,但我的问题应该与版本无关。我想知道 OpenCV 默认使用 the many RGB 颜色空间中的哪一个。
即对于default representation, BGR中的图像,OpenCV使用哪个RGB空间?
我怀疑他们要么是CIE 1931 XYZ functions:
请注意:此问题已反映here(目前正在等待审核)。我会确保他们之间共享任何知识。
【问题讨论】:
我使用的是 OpenCV 3.0,但我的问题应该与版本无关。我想知道 OpenCV 默认使用 the many RGB 颜色空间中的哪一个。
即对于default representation, BGR中的图像,OpenCV使用哪个RGB空间?
我怀疑他们要么是CIE 1931 XYZ functions:
请注意:此问题已反映here(目前正在等待审核)。我会确保他们之间共享任何知识。
【问题讨论】:
原来配色功能是采集设备和显示设备的问题。查看sRGB wiki page的这个相关部分
由于互联网、计算机和打印机上的 sRGB 标准化,许多中低端消费类数码相机和扫描仪使用 sRGB 作为默认(或唯一可用的)工作色彩空间。由于 sRGB 色域达到或超过了低端喷墨打印机的色域,因此 sRGB 图像通常被认为可以满足家庭使用。然而,消费级 CCD 通常是未经校准的,这意味着即使图像被标记为 sRGB,也不能断定图像是色彩准确的 sRGB。
OpenCV 可用于在颜色空间之间进行转换或使用the right math 导出颜色空间坐标。但是 OpenCV 没有一套“默认”的颜色匹配函数。如果您的相机在 X 空间(例如 CIE XYZ)中捕捉,并且您的显示设备或打印机也显示在 X 空间,那么 OpenCV 可用于处理之间的数据而无需考虑空间。但是,如果显示设备显示在不同的空间 Y(例如 Adobe RGB)中,则可以使用 OpenCV 将图像从空间 X 转换到空间 Y。
【讨论】:
尽管 OpenCV 对 RGB 的颜色空间大多是无关紧要的,但 cv::cvtColor 例外,它在定义明确的颜色空间和原生 OpenCV RGB 之间进行转换。从coefficients used,我们可以看到它使用了sRGB空间。
【讨论】: