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

原创 2016年06月01日 12:36:29

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

//OpenCV版本2.4.9    
//交流QQ2487872782   
  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  
#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<cv::Vec3b>(0, 0)[0];  
     watch2 = tempImage.at<cv::Vec3b>(0, 0)[1];  
     watch3 = tempImage.at<cv::Vec3b>(0, 0)[2];  



return 0;
}

运行结果如下图所示:


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

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

-------------------------------------------
欢迎大家加入图像识别技术交流群:271891601,另外,特别欢迎成都从事图像识别工作的朋友交流,我的QQ号2487872782

版权声明:本文为博主原创文章,未经博主允许不得转载。

opencv使用BGR而非RGB的原因

使用opencv读取图片时, 默认的通道顺序是BGR而非RGB,在RGB为主流的当下, 这种默认给我们带来了一点不便。那么, opencv 为什么要使用BGR而非RGB呢? 目前看到的一种解释说是因...
  • weixin_35653315
  • weixin_35653315
  • 2017年06月19日 11:52
  • 1420

OpenCV学习笔记(八)--颜色空间及转换

颜色空间要用三种或更多的特征来指定一种颜色,有许多的方法被称为颜色空间或者颜色模型。 如何选取其中一种方法来表示一副图像要依赖于执行的运算。 不同的颜色空间的转换,Opencv提供方法void...
  • taoyanqi8932
  • taoyanqi8932
  • 2016年09月25日 21:43
  • 4344

OpenCV学习笔记(十八)——图像的各种变换(cvtColor*+)imgproc

imgproc是OpenCV一个比较复杂的lib,我是分开介绍的,之前介绍过了滤波器、直方图、结构分析和形状描述三节,这次介绍一下图像的变换,OpenCV对于图像的变换又可分为几何变换和其他的变换,我...
  • yang_xian521
  • yang_xian521
  • 2011年11月25日 09:40
  • 54816

cvLoadImage中的RGB顺序

cvLoadImage是OpenCV读取图片的方法,通常将内存加到内存中,这个函数返回IplImage * pcvplimage; 可以同IplImage 的pcvplimage->imageDat...
  • chinabinlang
  • chinabinlang
  • 2014年12月30日 16:45
  • 2081

OPENCV中Bayer转BGR

Bayer格式是相机内部的原始图片,一般后缀名为.raw,一般bayer格式的图片绿色格式的像素是r和g像素的和。很多软件都可以查看, 比如PS。我们相机拍照下来存储在存储卡上的.jpeg或其它格式的...
  • j_d_c
  • j_d_c
  • 2017年01月04日 15:47
  • 2084

BGR to RGB排列

http://blog.163.com/braveone@126/blog/static/30660119200754317245/ 通过V4L得到了图像数据,但是保存为ppm,jpg格...
  • cjsycyl
  • cjsycyl
  • 2012年09月27日 13:59
  • 2735

COLOR RGB BGR以及字符串之间转换

一、COLORREF与RGB的相互转化 RGB(r,g,b)是一个宏 实际上它做得事是((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g)) rgb(r,g,b)...
  • liudeying
  • liudeying
  • 2015年12月22日 14:02
  • 1964

RGB和RGBQUAD的区别

RGB和RGBQUAD的区别   昨天的晚上,为一个问题困扰了很长时间,几乎整个晚上都在弄一个小bug,感觉没有问题,但就是效果不理想,几次三番,查来查去...........      ...
  • foreverhuylee
  • foreverhuylee
  • 2014年06月10日 14:49
  • 8104

RGB颜色与BGR颜色的转换问题

http://blog.csdn.net/xiaorui0328/article/details/1748229 今天在解决一个bug的时候发现颜色始终对不上,调试……,发现问题,API得到...
  • cjsycyl
  • cjsycyl
  • 2012年09月27日 13:24
  • 1746

【OpenCV3】颜色空间转换——cv::cvtColor()详解

cv::cvtColor()用于将图像从一个颜色空间转换到另一个颜色空间的转换(目前常见的颜色空间均支持),并且在转换的过程中能够保证数据的类型不变,即转换后的图像的数据类型和位深与源图像一致。...
  • guduruyu
  • guduruyu
  • 2017年04月01日 10:09
  • 11737
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:事实证明,OpenCV中对RGB图像数据的存储顺序是BGR,而且Scalar()的顺序也是B,G,R
举报原因:
原因补充:

(最多只允许输入30个字)