zoukankan      html  css  js  c++  java
  • OpenCV3.4.5+VS2017+扩展模块编译

    一.准备工作

    1.下载OpenCV源码

    OpenCV源码和扩展模块(opencv_contrib)版本要对应:
    1). OpenCV源码下载地址:
    OpenCV下载地址:
    https://github.com/opencv/opencv/releases

    2). OpenCV扩展模块(opencv_contrib)下载地址:

    https://github.com/opencv/opencv_contrib/releases

    2.下载安装Cmake

    二. 编译

    1. 分别解压opencv-3.4.5.zip和opencv_contrib-3.4.5.zip到同一个目录下的两个单独文件夹内

    2. 在该目录下新文件夹build:
      我的目录结构:

    3. 打开CMAKE_GUI, Browser Source选择 "...opencv-3.4.5opencv-3.4.5"
      Browser Build选择刚才新建的build目录 "...opencv3.4.5uild"

    4. 点击Configure选择, Visual Studio 15 2017 Win64

    5. 点击Finish 开始配置

    6. FFmpeg下载失败 可以到这里:https://pan.baidu.com/s/1rF3KE3cripWm_mzSOT763A 提取码:usy5 下载, 下载完成之后放到 3rdparty 目录下

    7. 如提示自己电脑上安装了python3, 可能会出现python版本错误,则把 "OPENCV_PYTHON3_VERSION"勾选上!

    8. 配置"OPENCV_EXTRA_MODULES_PATH" 目录为opencv_contrib下的modules目录"...opencv_contrib-3.4.5modules"

    9. 如果要用编译opencv_contrib中的non-free算法模块:

      1. 为了保险起见,进入:opencv目录下,打开cmakelist.txt找到

        1. OCV_OPTION(OPENCV_ENABLE_NONFREE "Enable non-free algorithms" OFF),把OFF修改为ON

    10. 再次点击"Configure"
      成功之后点击"Generate"
      生成完成之后点击"Open Project"

    11. 在VS中分别用Debuge和Release模式编译一遍

    ![](https://img2018.cnblogs.com/blog/1508951/201901/1508951-20190123130156379-2013206263.png)
    
    ![](https://img2018.cnblogs.com/blog/1508951/201901/1508951-20190123130054317-350151991.png)
    
    1. 编译完成后, 右键 install->仅仅生产install
    2. 编译完成得到install文件夹, 除了该文件夹其他的都可以删除了

    三.配置

    1. 右键我的电脑-->高级系统设置-->高级-->环境变量-->找到path-->新建-->填入build目录下:"...installx64vc15in"

    2. 之后记得重启资源管理器

    3. 如果要在vs项目中使用则, 在项目管理器中Debuge|x64下新建属性表:

    4. VC++目录-->包含目录, 设置为刚才install目录下的include目录 "../build/install/include"

    5. 库目录设置为, X64目录下的lib目录 ".../build/install/x64/vc15/lib"

    6. 打开命令行,进入".../build/install/x64/vc15/lib"目录下. 按照图中所示输入命令,得到.lib文件名, dubuge版本的lib文件以d.lib结尾, release版本,没有d.(可根据自己配置的版本自行导出.lib文件 )

    7. 链接器输入,附加依赖项填入刚才得到的lib文件名

    8. 至此配置完成,下边进行测试

    四.测试

    1. 在vs中键入如下代码:
      //代码转自知乎: https://zhuanlan.zhihu.com/p/40323837
      
      #include "pch.h"
      #include <opencv2/opencv.hpp> //包含头文件
      #include <iostream> 
      using namespace cv;    
      using namespace std;   
      int main(int argc, char** argv) {   
        Mat src = imread("E:/OpenCV/testimage/test.png");     //载入图像
        if (src.empty()) {                    //是不是为空
          printf("could not load image...
    ");
          return -1;
        }
        namedWindow("test opencv setup", CV_WINDOW_AUTOSIZE);  //创建窗口,自动大小
        imshow("test opencv setup", src);            //显示图像,窗口标题
        waitKey(0);                       //x=0无限等待下去,直到有按键按下,等待用户按键退出程序
        return 0;
    }
    

  • 相关阅读:
    使用MVC框架中要注意的问题(七):HtmlAttributes
    SQL Server:在触发器中对远程链接服务器进行更新操作的问题
    WPF: Video学习资料
    Backgroundposition的妙用
    两本好书
    庆祝俺的键盘劫后余生
    最近反Flash的气氛很浓啊,尤其是Html5这个小P孩(续)
    务虚:大局观、方法与关键点
    《算法引论:一种创造性方法》真是一本好书
    最近反Flash的气氛很浓啊,尤其是Html5这个小P孩
  • 原文地址:https://www.cnblogs.com/procorosso/p/10305929.html
Copyright © 2011-2022 走看看