OpenCV imread讀取圖片,imshow展示圖片,出現cv:Exception at memory location異常


問題如上。環境: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了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM