OpenCV可用以下函式顯示一個CvArr類數據mat;
cvNamedWindow("WinName",CV_WINDOW_AUTOSIZE);
cvShowImage("WinName",mat);
cvWaitKey(0);
但往往僅當mat為IIplmage*類型,且其depth為IPL_DEPTH_8U(8bit無符號整形)時,有較好的顯示效果
對於其他深度的IplImage*或者CvMat*類數據,可以使用CvConvert函式進行轉換,而後顯示。
如下所示
void Show(CvMat* mat)
{
CvSize size = cvSize(mat->width,mat->height);
IplImage* imgBuf = cvCreateImage(size,IPL_DEPTH_8U,1);
cvConvert(mat,imgBuf);
cvNamedWindow("image",CV_WINDOW_AUTOSIZE);
cvShowImage("image",mat);
cvWaitKey(0);
cvReleaseImage(&imgBuf);
}
//轉化成單通道圖像再處理(灰度)
cvCvtColor(pFrame, pBkImg, CV_BGR2GRAY);
cvCvtColor(pFrame, pFrImg, CV_BGR2GRAY);
cvConvert(pFrImg, pFrameMat);
cvConvert(pFrImg, pFrMat);
cvConvert(pFrImg, pBkMat);
//將背景轉化為圖像格式,用以顯示
cvConvert(pBkMat, pBkImg);