VS2013 + opencv 配置及读取一张图片

环境配置了两天终于好了,期间出现了一个接一个的问题,总结一下,以防下次踩坑。


1.下载安装opencv3.0。

地址:https://www.opencv.org/releases.html,选择Win pack

VS2013 + opencv 配置及读取一张图片_第1张图片

2. 解压提取。

VS2013 + opencv 配置及读取一张图片_第2张图片

新建opencv300.props文件,具体内容如下:

  
  
    
    
    
    $(OPENCV)\include;$(IncludePath)  
    $(OPENCV)\x86\vc12\lib;$(OPENCV)\x86\vc12\staticlib;$(LibraryPath)  
    $(OPENCV)\x64\vc12\lib;$(OPENCV)\x64\vc12\staticlib;$(LibraryPath)  
    
    
      
      opencv_ts300d.lib;opencv_world300d.lib;IlmImfd.lib;libjasperd.lib;libjpegd.lib;libpngd.lib;libtiffd.lib;libwebpd.lib;opencv_calib3d300d.lib;opencv_core300d.lib;opencv_features2d300d.lib;opencv_flann300d.lib;opencv_highgui300d.lib;opencv_imgcodecs300d.lib;opencv_imgproc300d.lib;opencv_ml300d.lib;opencv_objdetect300d.lib;opencv_photo300d.lib;opencv_shape300d.lib;opencv_stitching300d.lib;opencv_superres300d.lib;opencv_ts300d.lib;opencv_video300d.lib;opencv_videoio300d.lib;opencv_videostab300d.lib;zlibd.lib;%(AdditionalDependencies)  
        
      
      
      opencv_ts300.lib;opencv_world300.lib;IlmImf.lib;ippicvmt.lib;libjasper.lib;libjpeg.lib;libpng.lib;libtiff.lib;libwebp.lib;opencv_calib3d300.lib;opencv_core300.lib;opencv_features2d300.lib;opencv_flann300.lib;opencv_highgui300.lib;opencv_imgcodecs300.lib;opencv_imgproc300.lib;opencv_ml300.lib;opencv_objdetect300.lib;opencv_photo300.lib;opencv_shape300.lib;opencv_stitching300.lib;opencv_superres300.lib;opencv_ts300.lib;opencv_video300.lib;opencv_videoio300.lib;opencv_videostab300.lib;zlib.lib;%(AdditionalDependencies)  
        
      
    
    
  

文件目录如下:

VS2013 + opencv 配置及读取一张图片_第3张图片

3.配置环境变量。

选择【计算机】->【属性】->【高级系统设置】->【环境变量】,新增系统变量中的Path变量


4.打开VS2013,新建一个空项目。

VS2013 + opencv 配置及读取一张图片_第4张图片

VS2013 + opencv 配置及读取一张图片_第5张图片

添加一个新的.cpp文件

VS2013 + opencv 配置及读取一张图片_第6张图片

5.VS配置

选择【视图】->【其他窗口】->【属性管理器】,右键点击项目名称,选择【添加现有属性表】,添加opencv300.props。

VS2013 + opencv 配置及读取一张图片_第7张图片

右键项目名称,选择【属性】,选择【VC++目录】,添加【包含目录】和【库目录】。(一定要把下面的从父级继承打钩,不然以后会出现找不到.lib等问题)

VS2013 + opencv 配置及读取一张图片_第8张图片      VS2013 + opencv 配置及读取一张图片_第9张图片

在该属性页面,选择【链接器】->【输入】->【附加依赖项】,添加这两个库即可。opencv_ts300d.lib

opencv_world300d.lib

VS2013 + opencv 配置及读取一张图片_第10张图片

8.测试图片。

添加以下代码:

#include 

using namespace std;
using namespace cv;

int main(int argc, char* argv[])
{
	const char* imagename = "F:\gaoxixi.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;
}

运行效果如图:

VS2013 + opencv 配置及读取一张图片_第11张图片

9.总结

(1)如果找不到.lib,提示错误为1104,大部分时候都是因为库的路径配置不对或者不全面,看提示是哪个.lib文件,在计算机里搜索,找到路径后,把该路径依赖到库目录就好了。

(2)返回值为-1,图片读取不到,如果代码没有问题的话,就是图片路径的问题。之前看到网上说把路径放到项目根目录或者资源目录下,根据图片名字可以读取到,试了一下,发现并不可以,类似这样:

VS2013 + opencv 配置及读取一张图片_第12张图片


你可能感兴趣的:(图像处理入门)