VC2010和OpenCV2.4.9中imread这个函数不能正确读入图片的解决

来源:互联网 发布:网络贷款受法律保护吗 编辑:程序博客网 时间:2024/04/30 06:14

通常我们为了简单起见,是把所有的库(.lib)包括debug、release两个版本同时加载的。这样的话象下面的代码是可以正常工作的:

#include <opencv2\opencv.hpp>  #include<iostream>using namespace cv;void main(){IplImage *src;src = cvLoadImage("lena.jpg"); //这里将lena.jpg和lena.cpp文件放在同一个文件夹下cvNamedWindow("lena",CV_WINDOW_AUTOSIZE);cvShowImage("lena",src);cvWaitKey(0);cvDestroyWindow("lena");cvReleaseImage(&src);}

但是imread函数则不行,比如:

/*********************************************************************** * OpenCV 2.4.3 测试例程 * 于仕琪 提供 ***********************************************************************/#include "stdafx.h" #include <opencv2/opencv.hpp> using namespace std;using namespace cv; int _tmain(int argc, _TCHAR* argv[]){        const char* imagename = "lena.jpg";         //从文件中读入图像        Mat img = imread(imagename);         //如果读入图像失败        if(img.empty())        {                fprintf(stderr, "Can not load image %s\n", imagename);                return -1;        }         //显示图像        imshow("image", img);         //此函数等待按键,按键盘任意键就返回        waitKey();         return 0;}

只能是在两种模式下分别载入相应版本的.lib才行

3 0