OpenCV学习笔记(一)Windows环境安装步骤(3.4.14)

本系列是三丰Open CV学习笔记。
本文环境及特点:

ubuntu vue-router vuex

前言

本文教程适合初学者
本文作者在多次安装Open CV环境过程中,对于安装步骤进行了多次迭代,力求萌新都能够看懂。

建议使用Linux学习Open CV
这一系列笔记都是基于Linux系统,为什么不用windows?因为Linux配置环境真的太方便了,安装一个eigen库只需要一行指令,而Windows却要配好久的环境。
因此在这里我也建议大家,如果只是单纯处于学习过程,没有项目的要求,都用Linux系统就好。

本文教程为Windows编写
专门为Windows编写


opencv3 and opencv4
本文讲解的opencv编译步骤适用于3和4.不同的地方会特意予以说明。opencv4处需要特别注意的地方会予以黄色标注。
opencv4需要额外的操作有三处。1处是cmake时选中OPENCV_GENERATE_PKGCONFIG 2处是配置环境变量时多一步骤。3处是最后在命令行运行时g++命令也吧太一样。

一 为什么要编译OpenCV

因为根据源码构建OpenCV的能力是我们必须要掌握的,除了笔记本上自己安装的Ubuntu系统没有OpenCV之外,我们也有可能在自己的硬件平台上编译。

拿嵌入式平台manifold来说,系统其实自带OpenCV(使用dpkg -l命令可以看到所有已经安装了的库),那么为什么还要自己编译呢?因为manifold虽然安装了CUDA库(利用GPU进行图像处理)。但自带的open cv却没有添加CUDA功能。

(如果以后有人要写CUDA版本的RM程序,记得大幅修改,因为CUDA的open cv里的类是单独的,另一个名字)。因此,我们需要自己编译open cv,DIY能够满足我们要求的OpenCV库。

1.2 介绍

这次我们安装2个库OpenCV3.4.8和OpenCV-contrib3.4.8。

OpenCV分为两个库,一个是OpenCV,放了OpenCV稳定的功能,另一个是OpenCV-contrib,将一些不太稳定的功能放进去了,contrib介绍。比如Tracking()函数,我们以后也会遇到,所以这里干脆一次性安装全乎了。 OpenCV github下载链接 OpenCV-contrib下载地址
在contribute的下载页面,点击tag,有相应的版本号。

这俩链接下载速度贼慢,不过已经比官网快许多了。这一节用到的所有资源大家也可以在公众号后台回复 day1获取。

我在这里下载了OpenCV 3.4.8(3.4.1是企业版应用最稳定的,不过这种稳定我们不一定用得到。所以大家自己选择喜欢的版本即可,步骤大同小异)

Open cv库的安装使用的是cmake。使用cmake-gui这个图形化的工具更加方便。

二 构建步骤

2.0 关于准备工作

CMake过程中,报python2的错误,完全不用管。
如果想下载ffmpeg等库,你需要使用全局的代理,同时,还需要避免dns污染,把正确的ip地址添加到hosts文件中。
解决方案以win10为例子

1:进入 IPAddress.com 网站查询raw.githubusercontent.com真实地址。

185.199.108.133
此处可参考

2:打开C:\Windows\System32\drivers\etc\hosts,(需要使用管理员权限打开)

追加199.232.68.133 raw.githubusercontent.com如下:

左下角 搜索框 搜索 cmd

弹出命令框
输入
ipconfig /displaydns

显示所有 dns内容

ipconfig /flushdns

刷新所有 dns内容

2.1 CMake

在这里插入图片描述

在这里插入图片描述

CMake Warning at cmake/OpenCVDetectPython.cmake:81 (message):
  CMake's 'find_host_package(PythonInterp 2.7)' found wrong Python version:

  PYTHON_EXECUTABLE=D:/Programs/anaconda/python.exe

  PYTHON_VERSION_STRING=3.8.5

  Consider providing the 'PYTHON2_EXECUTABLE' variable via CMake command line
  or environment variables

Call Stack (most recent call first):
  cmake/OpenCVDetectPython.cmake:271 (find_python)
  CMakeLists.txt:611 (include)

有一定作用:
在这里插入图片描述
ippicv是英特尔的实时处理软件,加速软件,以后再配置这个加速软件。感觉需要一个东西能够让所有流量都走代理,否则每次安装都这样,太烦人了。

CMake Warning at cmake/OpenCVGenSetupVars.cmake:54 (message):
  CONFIGURATION IS NOT SUPPORTED: validate setupvars script in install
  directory
Call Stack (most recent call first):
  CMakeLists.txt:1012 (include)

脚本验证错误:这是一个warning,不想管了,毕竟已经configure成功了。
检查文件cmake / OpenCVGenSetupVars.cmake

if(DEFINED __python_path)
  if(IS_ABSOLUTE "${__python_path}")
    set(OPENCV_PYTHON_DIR_RELATIVE_CMAKECONFIG "${__python_path}")
    message(WARNING "CONFIGURATION IS NOT SUPPORTED: validate setupvars script in install directory")

3:再次打开cmake如下即可:

勾选

勾选cmake-gui中的
BUILD_opencv_world选项(使最后只生成一个库),
勾选OPENCV_ENABLE_NONFREE支持sift等nonfree的函数
OPENCV_EXTRA_MODULES_PATH选项中填写opencv_contrib-3.4.14源码解压后里面的modules的路径(比如opencv_contrib-3.4.14\modules),
去掉勾选ENABLE_PRECOMPILED_HEADERS,

再点击一次configure

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

代码验证库安装成功

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[])
{
    Mat src(220,220,CV_8UC3);
    namedWindow("CV_8UC3");
    imshow("CV_8UC3",src);
    waitKey(5000);
    return 0;
}

参考链接

微信公众号

欢迎大家关注我的个人公众号,现阶段主要总结Robomaster相关的计算机视觉知识。

公众号名称:三丰杂货铺
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值