opencv中imread这个函数不能正确读入图片的解决

来源:互联网 发布:java工程师等级划分 编辑:程序博客网 时间:2024/04/30 03:38

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

[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. #include <opencv2\opencv.hpp>    
  2. #include<iostream>  
  3. using namespace cv;  
  4. void main()  
  5. {  
  6.     IplImage *src;  
  7.     src = cvLoadImage("lena.jpg"); //这里将lena.jpg和lena.cpp文件放在同一个文件夹下  
  8.     cvNamedWindow("lena",CV_WINDOW_AUTOSIZE);  
  9.     cvShowImage("lena",src);  
  10.     cvWaitKey(0);  
  11.     cvDestroyWindow("lena");  
  12.     cvReleaseImage(&src);  
  13. }  

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

[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. /*********************************************************************** 
  2.  * OpenCV 2.4.3 测试例程 
  3.  * 于仕琪 提供 
  4.  ***********************************************************************/  
  5. #include "stdafx.h"  
  6.    
  7. #include <opencv2/opencv.hpp>  
  8.    
  9. using namespace std;  
  10. using namespace cv;  
  11.    
  12. int _tmain(int argc, _TCHAR* argv[])  
  13. {  
  14.         const char* imagename = "lena.jpg";  
  15.    
  16.         //从文件中读入图像  
  17.         Mat img = imread(imagename);  
  18.    
  19.         //如果读入图像失败  
  20.         if(img.empty())  
  21.         {  
  22.                 fprintf(stderr, "Can not load image %s\n", imagename);  
  23.                 return -1;  
  24.         }  
  25.    
  26.         //显示图像  
  27.         imshow("image", img);  
  28.    
  29.         //此函数等待按键,按键盘任意键就返回  
  30.         waitKey();  
  31.    
  32.         return 0;  
  33. }  

只能是在两种模式下分别载入相应版本的.lib和.dll才行
0 0
原创粉丝点击