問題如上。環境:VS2013。
代碼如下:
#include "stdafx.h" #include "opencv2\opencv.hpp" using namespace cv; int _tmain(int argc,_TCHAR* argv[]) { Mat image=imread("read1.PNG"); namedWindow("My Image"); imshow("My Image",image); waitKey(0); return 0; }
莫名出現內存泄露,中斷時,發現異常出現在imshow執行的時候,查看image的數據,發現data為NULL。
於是加了一個判斷語句。
#include "stdafx.h" #include "opencv2\opencv.hpp" using namespace cv; int _tmain(int argc,_TCHAR* argv[]) { Mat image=imread("read1.PNG"); if(image.data!=NULL){ namedWindow("My Image"); imshow("My Image",image); waitKey(0); } return 0; }
圖片位置沒有問題,imread也支持.png格式,不知道為什么一直讀取不了。
然后我又試了一張jpg格式的圖片,成功讀取。
難道是PNG大寫的關系?把圖片格式改為.png,成功讀取。
再改回PNG大寫,居然也沒問題?!!!
好吧,反正問題解決了就OK了。
