详解VS2019+OpenCV-4-1-0+OpenCV-contrib-4-1-0

 更新时间:2020年04月15日 17:12:42   作者:Kratze-Jayue  
这篇文章主要介绍了详解VS2019+OpenCV-4-1-0+OpenCV-contrib-4-1-0,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、软件需求

VS2019社区版、win10操作系统、opencv4.1.0、opencv_contrib_4.1.0、cmake3.15.3

VS2019社区版(免费) 下载地址
OpenCV4.1.0 下载地址
OpenCV_contrib_4.1.0 下载地址
CMAKE 下载地址

二、CMAKE编译

在 D:\opencv_4.1.0 目录下创建个newbuild文件夹

进入cmake,配置OpenCV_4.1.0

配置OpenCV_contrib_4.1.0

注意:第2步操作时后面的路径不要手打

三、VS2019编译

进入 D:\opencv_4.1.0\newbuild 目录 找到 OpenCV.sln 双击

四、系统环境变量配置

右键电脑-属性 -> 高级系统设置 ->环境变量 -> 系统变量 -> path

点击新建 填入 D:\opencv_4.1.0\newbuild\install\x64\vc16\bin

五、VS2019环境变量配置

  1. 打开vs2019,新建一个空项目,打开属性管理器(视图-属性管理器\视图-其他-属性管理器)
  2. 双击 Microsoft.Cpp.x64.user

配置包含目录(通用属性-VC++目录-包含目录),库目录(通用属性-VC++目录-库目录)

在包含目录中添加

D:\opencv_4.1.0\newbuild\install\include

D:\opencv_4.1.0\newbuild\install\include\opencv2

库目录中添加

D:\opencv_4.1.0\newbuild\install\x64\vc16\lib

配置附加依赖项(链接器-输入-附加依赖项)

获取链接器的方法

opencv_world410d.lib
opencv_aruco410d.lib
opencv_bgsegm410d.lib
opencv_bioinspired410d.lib
opencv_calib3d410d.lib
opencv_ccalib410d.lib
opencv_core410d.lib
opencv_datasets410d.lib
opencv_dnn410d.lib
opencv_dnn_objdetect410d.lib
opencv_dpm410d.lib
opencv_face410d.lib
opencv_features2d410d.lib
opencv_flann410d.lib
opencv_fuzzy410d.lib
opencv_gapi410d.lib
opencv_hfs410d.lib
opencv_highgui410d.lib
opencv_imgcodecs410d.lib
opencv_imgproc410d.lib
opencv_img_hash410d.lib
opencv_line_descriptor410d.lib
opencv_ml410d.lib
opencv_objdetect410d.lib
opencv_optflow410d.lib
opencv_phase_unwrapping410d.lib
opencv_photo410d.lib
opencv_plot410d.lib
opencv_quality410d.lib
opencv_reg410d.lib
opencv_rgbd410d.lib
opencv_saliency410d.lib
opencv_shape410d.lib
opencv_stereo410d.lib
opencv_structured_light410d.lib
opencv_superres410d.lib
opencv_surface_matching410d.lib
opencv_text410d.lib
opencv_tracking410d.lib
opencv_video410d.lib
opencv_videoio410d.lib
opencv_videostab410d.lib
opencv_ximgproc410d.lib
opencv_xobjdetect410d.lib
opencv_xphoto410d.lib

六、程序验证

#include <opencv2/opencv.hpp>
#include <iostream>
 
using namespace cv;
using namespace std;
 
int main(int argc, char** argv) {
	Mat box = imread("1.jpg");
	Mat box_in_sence = imread("2.jpg");
 
	// 创建AKAZE
	auto akaze_detector = AKAZE::create();
	vector<KeyPoint> kpts_01, kpts_02;
	Mat descriptors1, descriptors2;
	akaze_detector->detectAndCompute(box, Mat(), kpts_01, descriptors1);
	akaze_detector->detectAndCompute(box_in_sence, Mat(), kpts_02, descriptors2);
 
	// 定义描述子匹配 - 暴力匹配
	Ptr<DescriptorMatcher> matcher = DescriptorMatcher::create(DescriptorMatcher::BRUTEFORCE);
	std::vector< DMatch > matches;
	matcher->match(descriptors1, descriptors2, matches);
 
	// 绘制匹配
	Mat img_matches;
	drawMatches(box, kpts_01, box_in_sence, kpts_02, matches, img_matches);
	imshow("AKAZE-Matches", img_matches);
	imwrite("D:/result.png", img_matches);
 
	waitKey(0);
	return 0;
}

七、VS2019属性页没有Microsoft.Cpp.x64.user解决办法

可以查看我写过的另一篇博客 VS2019属性管理器没有Microsoft.Cpp.x64.user的解决办法

参考博客

到此这篇关于详解VS2019+OpenCV-4-1-0+OpenCV-contrib-4-1-0的文章就介绍到这了,更多相关VS2019 OpenCV OpenCV-contrib 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++日志记录类实例解析

    C++日志记录类实例解析

    这篇文章主要介绍了C++日志记录类实例,代码功能非常实用,需要的朋友可以参考下
    2014-07-07
  • C++中关于getchar()的使用方法

    C++中关于getchar()的使用方法

    这篇文章主要介绍了C++中关于getchar()的使用方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Visual Studio 2022下载及配置OpenCV4.5.5的详细过程

    Visual Studio 2022下载及配置OpenCV4.5.5的详细过程

    这篇文章主要介绍了Visual Studio 2022下载及配置OpenCV4.5.5的详细过程,在这里注意下Win10的64位操作系统,在OpenCV官网下载OpenCV4.5.5,安装的是Win pack,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • C++中的不规则二维数组实现代码

    C++中的不规则二维数组实现代码

    本文介绍了一个在C++中保存不定长二维数组的数据结构,在这个结构中,我们使用了一个含有指针和数组长度的结构体,用这样的一个结构体构造一个结构体数组,用于存储每一个不定长的数组,感兴趣的朋友一起看看吧
    2024-03-03
  • C语言实现的排列组合问题的通用算法、解决方法

    C语言实现的排列组合问题的通用算法、解决方法

    这篇文章主要介绍了C语言实现的排列组合问题的通用算法、解决方法,本文使用C语言实现在程序中解决这个问题,需要的朋友可以参考下
    2014-08-08
  • C++实现时间转换及格式化

    C++实现时间转换及格式化

    这篇文章主要为大家详细介绍了C++中实现时间转换及格式化的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • C语言中用栈+队列实现队列中的元素逆置

    C语言中用栈+队列实现队列中的元素逆置

    这篇文章主要介绍了C语言中用利用栈和队列实现队列中的元素逆置的相关资料,对正在学习的小伙伴有一定的参考价值,需要的可以参考一下,希望对你有所帮助
    2022-02-02
  • 全面解析C++中的new,operator new与placement new

    全面解析C++中的new,operator new与placement new

    以下是C++中的new,operator new与placement new进行了详细的说明介绍,需要的朋友可以过来参考下
    2013-09-09
  • C++11用两个线程轮流打印整数的实现方法

    C++11用两个线程轮流打印整数的实现方法

    这篇文章主要介绍了C++11用两个线程轮流打印整数的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • C语言编程gcc如何生成静态库.a和动态库.so示例详解

    C语言编程gcc如何生成静态库.a和动态库.so示例详解

    本文主要叙述了gcc如何生成静态库(.a)和动态库(.so),帮助我们更好的进行嵌入式编程。因为有些时候,涉及安全,所以可能会提供静态库或动态库供我们使用
    2021-10-10

最新评论