最近的项目中需要用到将RGB空间转换成HSV空间,转换后一直都感觉不对劲,最后才发现imread中的IMREAD_COLOR参数。
在opencv中的注释中提到IMREAD_COLOR方式是将数据尝试解码成BGR方式存储。
数据解码后,实际在上内存中的数据存储方式确实为BGR,通过imwrite或者imshow时,数据应该会被默认转换成实际的图像格式(没有看代码去考证,因为bmp就是BGR的序列)。
在进行色彩空间转换时,例如:BGR(或RBG) -> HSV时,如果将CV_BGR2HSV和CV_RGB2HSV混淆,最后的结果会引起色彩区域置换。所以就有问题了!