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

来源:互联网 发布:430单片机视频教程 编辑:程序博客网 时间:2024/06/06 13:42

验证程序的源码如下(用到的图像下载链接为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

1 0
原创粉丝点击