1
當我運行下面的代碼時,圖像被保存,我可以看到它們,並且它們是我想要的目錄,但顯示它們的調用會顯示20個窗口級聯,其中沒有包含我想要加載的圖像;所有的窗戶都是灰色的。cvLoadImage()+ cvShowImage()來自openCV顯示一個灰色框
for(int i = 1; i <= 20; i++)
{
img = cvQueryFrame(capture);
num = intToString(i);
fname = base + num + jpg;
winName = base + num;
cvSaveImage(fname.c_str(), img);
//img = cvLoadImage(fname.c_str(), -1);
cvNamedWindow(winName.c_str(), CV_WINDOW_AUTOSIZE);
cvMoveWindow(winName.c_str(), 15*i, 15*i); //cascade windows
cvShowImage(winName.c_str(), img);
}
我已經註釋掉的那一行是我在保存後嘗試重新加載圖像的地方,但我仍然得到相同的結果。任何人都知道我的問題是什麼?
IIRC'cvQueryFrame'返回一個指向內部圖像的指針,如果使用'cvCloneImage'並且顯示克隆(克隆的圖像需要稍後釋放),它會起作用嗎? – user786653
cvQueryFrame返回一個IplImage *。我嘗試了你的建議,不,我得到了同樣的結果。看來,cvCloneImage也返回一個IplImage *。另外根據劑量,(http://opencv.willowgarage.com/documentation/basic_structures.html#cvarr,http://www710.univ-lyon1.fr/~bouakaz/OpenCV-0.9.5/docs/ref/ OpenCVRef_Highgui.htm#decl_cvShowImage)cvShowImage()接受IplImage *作爲參數 –
我所指的是[documentation]中的部分(http://www710.univ-lyon1.fr/~bouakaz/OpenCV-0.9。 5/docs/ref/OpenCVRef_Highgui.htm#decl_cvQueryFrame)它表示「抓取的幀存儲在內部」。由於我沒有看到任何代碼立即出錯,我認爲這可能是原因,但我想不是。 – user786653