1. 程式人生 > >事實證明,OpenCV中對RGB影象資料的儲存順序是BGR,而且Scalar()的順序也是B,G,R

事實證明,OpenCV中對RGB影象資料的儲存順序是BGR,而且Scalar()的順序也是B,G,R

影象處理開發資料、影象處理開發需求、影象處理接私活掙零花錢,可以搜尋公眾號"qxsf321",並關注!

//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)代表的是紅色