事实证明,OpenCV中对RGB图像数据的存储顺序是BGR,而且Scalar()的顺序也是B,G,R

验证程序的源码如下(用到的图像下载链接为http://pan.baidu.com/s/1qXBLxfQ):

图像处理开发资料、图像处理开发需求、图像处理接私活挣零花钱,可以搜索公众号"qxsf321",并关注!

//OpenCV版本2.4.9    
//交流QQ2487872782   
  
#include   
#include   
#pragma comment(linker,"/subsystem:windows /ENTRY:mainCRTStartup")

int main()
{
	// 源图像载入及判断  
    cv::Mat srcImage = cv::imread ("Red_pic.jpg"); //Red_pic是一幅全红的图
    if( !srcImage.data )   
       return 1;  

	cv::Mat tempImage = srcImage.clone();  

	int watch1,watch2,watch3;

	 watch1 = tempImage.at(0, 0)[0];  
     watch2 = tempImage.at(0, 0)[1];  
     watch3 = tempImage.at(0, 0)[2];  



return 0;
}

 

运行结果如下图所示:

事实证明,OpenCV中对RGB图像数据的存储顺序是BGR,而且Scalar()的顺序也是B,G,R_第1张图片

从图中我们可以看出第三个分量的值是254,这就说明第三个分量是R,所以OpenCV对RGB图像数据的存储顺序是BGR

另外,通过其它程序,我也试验出了Scalar()的三个参数的顺序是B、G、R,所以cv::Scalar( 0, 0, 255)代表的是红色
 

你可能感兴趣的:(OpenCV的基础与使用)