事實證明,OpenCV中對RGB影象資料的儲存順序是BGR,而且Scalar()的順序也是B,G,R
阿新 • • 發佈:2019-01-06
影象處理開發資料、影象處理開發需求、影象處理接私活掙零花錢,可以搜尋公眾號"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)代表的是紅色