1
我喜歡檢查由cvRetrieveFrame讀取的圖像的RGB序列。我檢查如下使用cvRetrieveFrame從AVI讀取圖像
frame_data = cvRetrieveFrame(readerAvi);
cvShowImage("imageOrg", frame_data.Ptr());
cvWaitKey();
cvDestroyWindow("imageOrg");
IplImage* r = cvCreateImage(cvGetSize(frame_data.Ptr()), IPL_DEPTH_8U, 1); //r
IplImage* g = cvCreateImage(cvGetSize(frame_data.Ptr()), IPL_DEPTH_8U, 1); //g
IplImage* b = cvCreateImage(cvGetSize(frame_data.Ptr()), IPL_DEPTH_8U, 1); //b
cvSplit(frame_data.Ptr(), r, g, b, NULL);
IplImage* c = cvCreateImage(cvGetSize(frame_data.Ptr()), IPL_DEPTH_8U, 3);
cvMerge(r,0,0,0,c);
cvShowImage("imageT", c);
cvWaitKey();
cvDestroyWindow("imageT");
我交替地把r,g,b放入cvMerge(r,0,0,0,c);
。但我只看到黃色的圖像。什麼是我的測試代碼worng? 我做過cvSplit(frame_data.Ptr(), b, g, r, NULL);
然後cvMerge(b,NULL,NULL,NULL,c);
變成黃色。 cvMerge(NULL,g,NULL,NULL,c);
變成粉紅色。並且cvMerge(NULL,NULL,r,NULL,c);
變成了綠色。
感謝