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