OpenCV 4.2.0安装引导

syan 发布于 2020-01-15 993 次阅读


OpenCV 4.2.0安装引导

本体库安装

拷贝或从OpenCV官网获取OpenCV自解压程序opencv-4.2.0-vc14_vc15.exe

image-20200112182612362.png

下载/拷贝完成后,将OpenCV库解压到电脑的任意位置

这里推荐养成整理运行库收藏的习惯,即将多数运行库或者coding相关的文件放在相同的文件夹内

这里我将OpenCV解压在了D:\CODESLibrary\opencv-4.2.0目录,解压错了位置也可以自行剪切调整image-20200112183242218.png

配置环境变量

在Windows搜索栏上查找环境变量,image-20200112183545909.png

image-20200112183652791.png

找到系统变量中的path,在其中新建环境变量${YourOpenCVFloder}\build\x64\vc15\bin,以我的电脑为例,新建了环境变量D:\CODESLibrary\opencv-4.2.0\build\x64\vc15\bin

image-20200112184152117.png

然后新增用户变量(虽然我不怎么确定这一步有啥用),道理同上

image-20200112184233687.png

配置环境变量是为了将opencv的运行库包含在系统路径中,方便系统执行时的查找

Visual Studio 2019安装

从VS官网下载或拷贝Visual Studio 2019 Community的安装文件(因为其它版本需要钱),安装Visual Studio Installer,在安装时填选使用C++的桌面开发选项image-20200112184839271.png

VS工程创建及链接器配置

以visual studio中的空项目模板创建工程

image-20200112200615815.png

创建项目image-20200112201512149.png

打开项目中的属性管理器image-20200112201928310.png

并向x64 debug的配置中加入现有属性表

image-20200112202205822.png

这里给出我提供的props配置文件模板

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets" />
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup>
    <_PropertySheetDisplayName>OpenCV</_PropertySheetDisplayName>
    <IncludePath>${YourOpenCVFloder}\build\include\opencv2;${YourOpenCVFloder}\build\include;$(IncludePath)</IncludePath>
    <LibraryPath>${YourOpenCVFloder}\build\x64\vc15\lib;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <ItemDefinitionGroup>
    <Link>
      <AdditionalDependencies>opencv_world420d.lib</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup />
</Project>

把这串代码中的${YourOpenCVFloder}标识改为自己的地址,并通过记事本保存为名为OpenCV.props的vs配置文件,而后添加进属性管理器就ok了√

如果尝试不成功可以将opencv_world420d.lib一栏改成绝对地址,${YourOpenCVFloder}\build\x64\vc15\lib\opencv_world420d.lib

开始自己的项目

接下来,只要在解决方案管理器栏中的源文件中,新建添加自己的cpp代码,就可以开始你的项目啦

image-20200112214142520.png

其中需要注意几点

  1. 注意将编译运行栏调整为以下情况image-20200112214241471.png
  2. 一个工程内不能含有多个main函数,在练习中可以使用main函数对当前练习内容进行调用,这样就避免了新建多个项目的麻烦

给出示例代码,总之配起来试试吧√

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int show_my_wife(const string &my_wife_path ) {
    Mat img = imread(my_wife_path);
    namedWindow("my_wife", WINDOW_NORMAL);
    imshow("my_wife", img);
    waitKey();
    return 0;
}

int main() {
    //注意将1.jpg换成自己图片的目录,无前缀默认是读取根目录下的文件
    show_my_wife("1.jpg");
}