之前遇到一個很郁悶的問題,因為從用OpenCV2.3.1改成OpenCV2.4.4,開始改用Mat和imread來代替Iplimage和cvLoadImage,出了點小問題:imread讀入數據總是為空。
程序為:
1 Mat image = imread ("lena.jpg"); 2 imshow("lena",image); 3 cvWaitKey(0);
剛開始以為是路徑的問題,后來偶然采用Iplimage獲取圖像,可以很好的讀取圖片:
1 IplImage *src; 2 src = cvLoadImage("lena.jpg"); //這里將lena.jpg和lena.cpp文件放在同一個文件夾下 3 cvNamedWindow("lena",CV_WINDOW_AUTOSIZE); 4 cvShowImage("lena",src); 5 cvWaitKey(0); 6 cvDestroyWindow("lena"); 7 cvReleaseImage(&src);
搜了搜網上的說法,終於發現了原因(原鏈接已經丟失,可以自己搜搜看),原來是OpenCV配置出現問題!
是這樣的,之前配置時為了省事兒,無論是Debug還是Release中的附加依賴項,都添加了所有的lib,也就是沒有分Debug和Release。但實際上OpenCv是要分的,文件名尾帶d的為Debug庫函數,不帶d的為Release庫函數。只需將其中庫函數分開添加進附加依賴項即可。
轉自Daisy327
