事实证明,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

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

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

cv::cvtColor()用于将图像从一个颜色空间转换到另一个颜色空间的转换(目前常见的颜色空间均支持),并且在转换的过程中能够保证数据的类型不变,即转换后的图像的数据类型和位深与源图像一致。...

opencv使用BGR而非RGB的原因

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

【Computer vision】OPENCV RGB与BGR互换

opencv中为什么图像局矩阵是以BGR而不是RGB显示像素的大小,这个其实与图像的表示定义有关,几个最初定义它的大牛互相不认同,就产生了如今的BGR与RGB混乱的局面,不过总体上来说,大部分还是默认...
  • OEDead
  • OEDead
  • 2015年03月02日 14:10
  • 2451

BGR to RGB排列

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

OpenCV——RGB三通道分离

opencv 和 matlab 在处理彩色图像的时候,

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

一、COLORREF与RGB的相互转化 RGB(r,g,b)是一个宏 实际上它做得事是((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g)) rgb(r,g,b)...

RGB和RGBQUAD的区别

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

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

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

【Opencv】读图像文件imread

imread()函数的声明如下: Mat imread(const string& filename, int flags) 其中参数filename是被读取或者保存的图像文件名;在imread(...
  • TJYLV
  • TJYLV
  • 2016年02月24日 10:46
  • 1020

【opencv+python】图像处理之一、颜色空间RGB,Gray与HSV

该系列文章为 OpenCV+Python Tutorials的学习笔记 代码托管在Github 转载请注明: http://blog.csdn.net/a352611 [三记的博客]颜色空间转换c...
  • a352611
  • a352611
  • 2016年05月15日 15:19
  • 9941
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:事实证明,OpenCV中对RGB图像数据的存储顺序是BGR,而且Scalar()的顺序也是B,G,R
举报原因:
原因补充:

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