【Computer vision】OPENCV RGB与BGR互换

	opencv中为什么图像局矩阵是以BGR而不是RGB显示像素的大小,这个其实与图像的表示定义有关,几个最初定义它的大牛互相不认同,就产生了如今的BGR与RGB混乱的局面,不过总体上来说,大部分还是默认RGB的格式,比如ffmpeg;然后还有极少部分使用BGR,如opencv。
	所以在遇到以上问题时,需要先将BR通道互换,才能继续下一步处理,通常的做法有:
	(1)void cvConvertImage( const CvArr* src, CvArr* dst, int flags=0 ),其中flags取CV_CVTIMG_SWAP_RB - 交换红蓝通道。在OpenCV中,彩色图像的通道顺序是 BGR 然而在一些系统中,在显示图像之前通道顺序应该被翻转(cvShowImage能够自动转换)。
	(2)Mat cvRGBImg(oniColorImg.getHeight(), oniColorImg.getWidth(), CV_8UC3, (void*)oniColorImg.getData());
	cvtColor(cvRGBImg, cvBGRImg, CV_BGR2RGB);

你可能感兴趣的:(计算机视觉)