OpenCV 2.4.10 + VS2010 配置,imread读取不到图片
按照毛星云的教程OpenCV 2.4.10 + VS2010:
http://blog.****.net/poem_qianmo/article/details/19809337
使用OpenCV2.3.2 document上的教程读入图片:
http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/introduction/load_save_image/load_save_image.html
#include <cv.h> #include <highgui.h> using namespace cv; int main( int argc, char** argv ) { if(argc != 2) { printf("useage: %s <imagefile>\n ", argv[0]); return -1; } char* imageName = argv[1]; Mat image; image = imread( imageName, CV_LOAD_IMAGE_COLOR); if( !image.data ) { printf( " No image data \n " ); return -1; } Mat gray_image; cvtColor( image, gray_image, CV_BGR2GRAY ); imwrite( "../../images/Gray_Image.jpg", gray_image ); namedWindow( imageName, CV_WINDOW_AUTOSIZE ); namedWindow( "Gray image", CV_WINDOW_AUTOSIZE ); imshow( imageName, image ); imshow( "Gray image", gray_image ); waitKey(0); return 0; }
运行输出No image data。
使用毛星云帖子中的测试代码:
- #include<iostream>
- #include <opencv2/core/core.hpp>
- #include <opencv2/highgui/highgui.hpp>
- using namespace cv;
- int main()
- {
- // 读入一张图片(游戏原画)
- Mat img=imread("pic.jpg");
- // 创建一个名为 "游戏原画"窗口
- namedWindow("游戏原画");
- // 在窗口中显示游戏原画
- imshow("游戏原画",img);
- // 等待6000 ms后窗口自动关闭
- waitKey(6000);
- }
R6010.
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, fi
le ..\..\..\..\opencv\modules\highgui\src\window.cpp, line 261
请按任意键继续. . .
imshow错误,原因是其实imread读入图片失败。
解决方法:
debug下“链接器”->“输入”->“附加依赖项”中输入应该把release下的lib去掉,带d的是debug的lib,不带d的是release的lib,debug下opencv 2.4.10的lib应该只包括:
opencv_ml2410d.lib
opencv_calib3d2410d.lib
opencv_contrib2410d.lib
opencv_core2410d.lib
opencv_features2d2410d.lib
opencv_flann2410d.lib
opencv_gpu2410d.lib
opencv_highgui2410d.lib
opencv_imgproc2410d.lib
opencv_legacy2410d.lib
opencv_objdetect2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
opencv_nonfree2410d.lib
opencv_ocl2410d.lib
opencv_photo2410d.lib
opencv_stitching2410d.lib
opencv_superres2410d.lib
opencv_videostab2410d.lib