在VS2019中配置Boost C++、NumCpp、Eigen 和opencv4.3.0库环境

一、Visual Studio 2019(VS2019)安装

​ Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework和Microsoft Silverlight 及Windows Phone。
​ Visual Studio是最流行的Windows平台应用程序的集成开发环境。最新版本为 Visual Studio 2019 版本,基于.NET Framework 4.8 。
​ 2018年6月,微软宣布开发新一代集成开发环境(integrated development environment,IDE)Visual Studio 2019。
​ 2019年2月15日,微软敲定了Visual Studio 2019正式版的首发时间,2019年4月2日(北京时间4月3日凌晨1点。
​ Visual Studio 2019已经发布了四个公开预览版,分别是2018年12月的Preview 1、2019年1月的Preview 2。2月13日推出的Preview 3 和3月1日刚推出的Preview 4。

1.下载链接:VS官方网站
2.下载版本,下载Community2019版本的(个人版)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1EyBZ3fe-1629617593867)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822142146396.png)]

3.VS2019相关配置
如果你只是单纯的想用VS2019写C++代码,选择C++的桌面开发即可‘

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-57sN70Ji-1629617526919)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822142223655.png)]

4.提醒:位置我们一般情况是选择默认的位置,随后点击安装即可!

5.安装完成进入界面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dt8SagEs-1629617526922)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822142259635.png)]

可能有小伙伴会弹出需要你登录界面,这里我们直接注册一个Microsoft账号就可以了,注册是免费的哟!如果你不登录Microsoft账号的话你只能试用30天,登录了Microsoft账号就可以永久使用啦!That’s because it’s free!

二、安装Boost C++、NumCpp、Eigen 和opencv4.3.0库

Numcpp是依赖另外一个库文件的即Boost C++,因此需要先安装这个库文件。

安装Boost C++

1.下载链接:Boost C++官方网站
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HkThYgal-1629617526926)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822142855924.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bd6rDFMK-1629617526929)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822142945508.png)]
2.解压完后,你会看到你的目录下有bootstrap.bat批处理文件,双击执行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4CqKHfKf-1629617526930)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822143405005.png)]
运行完成后,会在目录下得到b2.exe文件。

3.再执行b2.exe文件,运行会比较长久。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rZm1q67j-1629617526932)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822143655379.png)]
运行完成后,在stage/lib/目录下会产生很多lib文件。

4.再执行b2.exe install --prefix=D:/Boost

在VS2019中的配置,后面统一进行配置!!!

安装NumCpp

1.下载链接:NUmCPP

在这里插入图片描述

2.先创建build文件夹

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x1RqdnG6-1629617526936)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822144313555.png)]

3.以管理员身份打开cmd

在这里插入图片描述

在cmd中分别执行以下命令,第一句定位到build文件下

>> cd /d D:\NumCpp-master\build
>> cmake ..
>> cmake --build . --target install

运行过程中,能够看到安装目录,即C:\Program Files (x86)\NumCpp

安装Eigen

Eigen也是比较常用的库,也安装一下。

1.下载链接:Eigen官网

在这里插入图片描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pPFQhUmT-1629617526941)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822145306357.png)]

2.解压后的文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wnra46Ka-1629617526942)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822145415219.png)]

安装opencv4.3.0

1.下载链接:Releases - OpenCV

在这里插入图片描述

2.下载完压缩包名:opencv-4.3.0-vc14_vc15.exe
解压完文件名:opencv

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SLYMHDdM-1629617526945)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822150020849.png)]

三、在VS2019中,配置Boost C++、NumCpp、Eigen 和opencv4.3.0库环境
Opencv的环境变量与添加dll文件到System32中

【1】找到我的电脑图标(或者是此电脑),右击。选择属性。
【2】选择高级系统设置,找到环境变量。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AUIcgACi-1629617526947)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822150311577.png)]

【3】找到系统变量一栏,双击“path”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yBCTkVkG-1629617526950)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822150330236.png)]

【4】点击新建。输入你的安装路径,需要到bin这个文件。

D:\opencv\build\x64\vc15\bin

下面为环境变量的添加。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bb1yelbr-1629617526952)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822150424459.png)]

【5】添加dll文件到System32中。

这个路径的来源如下图,当你一层层点击,直到bin这个文件打开,呈现的一般是类似于下图的样子。这个时候再复制路径到上面的环境变量的添加中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w6PVIUk3-1629617526953)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822150628601.png)]

在路径下找到3个应用程序扩展文件,分别为

opencv_videoio_ffmpeg430_64.dll
opencv_world430.dll
opencv_world430d.dll

将opencv_world430.dll、opencv_videoio_ffmpeg430_64.dll和opencv_world430d.dll复制到下面的目录

C:\Windows\System32

在VS2019中,配置Boost C++、NumCpp、Eigen 和opencv4.3.0库环境

1.新建项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V08tnBBf-1629617526954)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822150850092.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b1vZAXNs-1629617526956)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822150944732.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ChiPp9V9-1629617526957)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822151457828.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E9gqQ857-1629617526958)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822151346328.png)]

创建完成。

2.进入属性设置。

进入项目属性页。在右侧解决方案一栏中点击刚才创建好的项目名,然后右击,选择属性。可以得到如下图的界面。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PAtnBX5i-1629617526960)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822151552220.png)]

建议选择Release模式和平台x64

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6q0RhB5n-1629617526961)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822151717586.png)]

3.包含目录,库目录,附加依赖项的配置

配置包含目录下路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wTGPzQIJ-1629617526962)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822152017113.png)]

点击新建以下目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SU3lTbEv-1629617526964)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822152124847.png)]

包含目录下添加

D:\opencv\build\include
D:\opencv\build\include\opencv2
D:\boost_1_77_0\boost_1_77_0
D:\eigen-3.4.0\eigen-3.4.0
C:\Program Files (x86)\NumCpp\include

库目录添加:
需要自己安装的目录

D:\opencv\build\x64\vc15\lib
D:\boost_1_77_0\boost_1_77_0\stage\lib

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tpHzfiMp-1629617526965)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822152833711.png)]

添加附加依赖项
链接器->输入->附加依赖项,点击右侧的下拉箭头进行编辑,添加:

opencv_world430.lib

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S5zokKk7-1629617526967)(C:\Users\67231\AppData\Roaming\Typora\typora-user-images\image-20210822152618680.png)]

配置完成!!!

四、测试
// NumCpp测试
#include "NumCpp.hpp"
#include <Eigen/Dense>
#include <iostream>

typedef Eigen::Matrix<int, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> EigenIntMatrix;
typedef Eigen::Map<EigenIntMatrix> EigenIntMatrixMap;

int main()
{
    // construct some NumCpp arrays
    auto ncA = nc::random::randInt<int>({ 5, 5 }, 0, 10);
    auto ncB = nc::random::randInt<int>({ 5, 5 }, 0, 10);

    std::cout << "ncA:\n" << ncA << std::endl;
    std::cout << "ncB:\n" << ncB << std::endl;

    // map the arrays to Eigen 
    auto eigenA = EigenIntMatrixMap(ncA.data(), ncA.numRows(), ncA.numCols());
    auto eigenB = EigenIntMatrixMap(ncB.data(), ncB.numRows(), ncB.numCols());

    // add the two Eigen matrices
    auto eigenC = eigenA + eigenB;

    // add the two NumCpp arrays for a sanity check
    auto ncC = ncA + ncB;

    // convert the Eigen result back to NumCpp
    int* dataPtr = new int[eigenC.rows() * eigenC.cols()];
    EigenIntMatrixMap(dataPtr, eigenC.rows(), eigenC.cols()) = eigenC;

    constexpr bool takeOwnership = true;
    auto ncCeigen = nc::NdArray<int>(dataPtr, eigenC.rows(), eigenC.cols(), takeOwnership);

    // compare the two outputs
    if (nc::array_equal(ncC, ncCeigen))
    {
        std::cout << "Arrays are equal." << std::endl;
        std::cout << ncC << std::endl;
    }
    else
    {
        std::cout << "Arrays are not equal." << std::endl;
        std::cout << "ncCeigen:\n" << ncCeigen << std::endl;
        std::cout << "ncC:\n" << ncC << std::endl;
    }

    return 0;
}

在这里插入图片描述

// opencv测试
#include <iostream>
#include<opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>//Opencv highgui 模块头文件
#include<opencv2/imgproc/imgproc.hpp>//图像处理头文件
using namespace cv;

int main() {
	//功能二:图像模糊
	Mat srcImage = imread("C:\\Users\\67231\\Pictures\\03.jpg");//需要自己设置路径,注意使用\\

	imshow("均值滤波原始图", srcImage);

	Mat dstImage;
	blur(srcImage, dstImage, Size(7, 7));

	imshow("均值滤波效果图", dstImage);

	waitKey(0);
}

在这里插入图片描述
参考网站:
https://blog.csdn.net/Airaybaiju/article/details/79446864
https://blog.csdn.net/shizheng_Li/article/details/102467938
https://blog.csdn.net/weixin_49643423/article/details/107873833
https://blog.csdn.net/weixin_42398658/article/details/112527065
https://blog.csdn.net/weixin_49643423/article/details/107873839
https://dpilger26.github.io/NumCpp/doxygen/html/_interface_with_eigen_8cpp-example.html

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陨星落云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值