zoukankan      html  css  js  c++  java
  • VS2015+Windows 10下配置opencv3.0

    博客园样式换了,原先的文章排版太乱了,新发一篇

    0. 安装 opencv 3.0


    首先去官网下载安装包(其实是个压缩包),释放到随便的一个路径里面为了方便描述,下面把这个路径称为 cvPath。
    然后以管理员权限运行命令行,执行下面的命令:

    setx -m OPENCV_DIR cvPathuildx64vc12
    setx -m OPENCV_DIR cvPathuildx86vc12
    

    1. 添加系统环境变量


    桌面-此电脑-右键-属性-高级系统设置-环境变量
    在 系统环境 List 中选择 Path,单击 编辑
    添加下面的路径:
    OPENCV_DIRin

    重启电脑,使系统变量生效

    2. 配置 VS2015


    新建一个 C++ 的控制台项目
    视图-属性管理器-展开你的项目-选择 Debug|Win32-右键-新建新项目属性表

    建立好新的属性表后打开它,分别设置以下的项目:

    • 通用属性
      • C/C++
        如果没有出现这个选项卡请向项目中添加一个 C/C++ 源文件
        • 常规
          附加包含目录:

            $(OPENCV_DIR)....include
          
      • 链接器
        • 常规
          附加库目录:

            $(OPENCV_DIR)lib
          
        • 输入
          附加依赖项:

            opencv_ts300d.lib
            opencv_world300d.lib
          

          可以根据需要添加其他的库,以“d”结尾的库是在 debug 模式中使用的,opencv库的命名规则是

            opencv_(The Name of the module)(The version Number of the library you use)d.lib
          

    完成上面的设置后就可以保存了,这个属性表文件保存在项目的根目录中,如果要在其他的项目中使用 opencv 也可以使用以上方法,唯一的不同是之后的项目可以直接添加现有属性表。

    3. Have fun!


    #include <opencv2/core.hpp>
    #include <opencv2/imgcodecs.hpp>
    #include <opencv2/highgui.hpp>
    #include <iostream>
    
    using namespace cv;
    using namespace std;
    
    int main( int argc, char** argv )
    {
        if( argc != 2)
        {
         cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
         return -1;
        }
    
        Mat image;
        image = imread(argv[1], IMREAD_COLOR); // Read the file
    
        if( image.empty() ) // Check for invalid input
        {
            cout << "Could not open or find the image" << std::endl ;
            return -1;
        }
    
        namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.
        imshow( "Display window", image ); // Show our image inside it.
    
        waitKey(0); // Wait for a keystroke in the window
        return 0;
    }
    

    这个小程序使用命令行参数运行,参数是一个图片文件的路径。

    4. Naive!


    哈哈哈哈,你以为这么容易就可以直接运行吗?你们啊,too young too simple,sometimes naive!

    VS2015的编译器版本是 vc14 ,然后你是不是发觉了一些问题?

    opencv 3.0 的使用的是 vc12 编译的,所以VS2015在编译你的程序的时候会使用更高级的库,这导致程序出错。

    解决方法是把下面的两个文件放到cvPathuildx86vc12in里面。
    http://pan.baidu.com/s/1hqF8nlU

    然后,完美运行。

    5.一些疑问


    1. 在 Nuget 中也有 opencv 包可以下载供 C++ 使用,从这里面下载的 opencv 要如何在程序中调用呢?
    2. opencv 只能在 x86 平台使用吗?因为我尝试生成 x64 的时候会提示模块计算机类型与目标计算机类型冲突。
    3. vc12 跟 vc14 到底是什么东西?我在上面是猜的。

    参考文章:
    OpenCV3.0.0+win10 64位+vs2015环境的下载,安装,配置与属性表的生成
    Vs2015+opencv2.4.10出现msvcp120d.dll丢失 opencv2410.props
    How to build applications with OpenCV inside the Microsoft Visual Studio
    Installation in Windows

  • 相关阅读:
    洛谷p1017 进制转换(2000noip提高组)
    Personal Training of RDC
    XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Eurasia
    XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Peterhof.
    Asia Hong Kong Regional Contest 2019
    XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Siberia
    XVIII Open Cup named after E.V. Pankratiev. Ukrainian Grand Prix.
    XVIII Open Cup named after E.V. Pankratiev. GP of SPb
    卜题仓库
    2014 ACM-ICPC Vietnam National First Round
  • 原文地址:https://www.cnblogs.com/JacZhu/p/5477755.html
Copyright © 2011-2022 走看看