Opencv4.1.0+contrib4.1.0+cmake3.14.0+vs2017

说明:添加了opencv_contrib模块,可以使用SIFT算法;vs2015对应vc14,vs2017对应vc15

 

1软件配置

(1)Vs2017企业版

(2)Opencv4.1.0  (最好下载exe那个版本,其实就是个压缩包)

https://opencv.org/releases/

(3)Opencv_Contrib4.1.0  (版本要和Opencv4.1.0保证一致)

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

(4)Cmake3.14.0

https://cmake.org/download/


2文件夹设置:

安装路径选择的是D:\OpenCV,有子文件夹opencv41(放置下载的opencv4.1.0解压缩后的文件)和opencv_contrib41(放置opencv_contrib4.1.0的解压缩文件)

在D:\OpenCV\opencv41路径下新建文件夹newbuild,用于存储后面用cmake编译的文件。有了newbuild之后,其实opencv4.1.0自带的build就没用了。


3.cmake上的操作

(1)打开cmake-gui.exe,where is the source code: D:/OpenCV/opencv41/sources

Where to build binaries: D:/OpenCV/opencv41/newbuild(刚才新建的文件夹)

(2)点击configure,出现选择vs2017,x64。然后经过长达十几分钟的等待(具体等待时间取决于外网下载的速度)。Configure之后,勾选BUILD_OPENCV_WORLD,BUILD_EXAMPLES,OPENCV_ENABLE_NONFREE三个小方框,在opencv_modules_path后面选择路径D:/OpenCV/opencv_contrib41/modules(这个是在安装opencv_contrib4.1.0部分),然后重新点击configure。如果这次configure之后所有行都变成白色(即不再是红色)可以跳入下一步,否则继续点击configure,知道所有行变红(变红说明下载失败)。注意:通常有ippcv_2019_win_inte64_20180723_general,opencv+ffmpeg.dll,opencv_ffmpeg_64.dll经常下载失败。

(3)没有红色行之后,点击generate,generate之后(最后两行出现configuring done,generating done),点击右边的open Project在vs2017中打开该项目。至此cmake任务结束。


4. 配置环境变量

打开我的电脑-属性-高级系统设置-环境变量。在‘系统变量’中选择‘Path’,双击开始编辑环境变量,新建,D:\OpenCV\opencv41\newbuild\install\x64\vc15\bin。环境变量设置完成。


5.vs2017上的操作

(1)设置Debug,x64.在解决方案管理器中,选择解决方案‘OpenCV’,右键,生成解决方案。等待十几分钟等解决方案生成完毕,在CMakeTargets下选择INSTALL,右键,仅用于项目-仅生成INSTALL。

(2)Release,x64.在解决方案管理器中,选择解决方案‘OpenCV’,右键,生成解决方案。等待十几分钟等解决方案生成完毕,在CMakeTargets下选择INSTALL,右键,仅用于项目-仅生成INSTALL。

(3)文件-新建-项目,在属性管理器中,选择Debug|x64,属性。

VC++目录-可执行文件目录:D:\OpenCV\opencv41\newbuild\install\x64\vc15\bin

VC++目录-包含目录:D:\OpenCV\opencv41\newbuild\install\include

D:\OpenCV\opencv41\newbuild\install\include\opencv2

VC++-库目录:D:\OpenCV\opencv41\newbuild\install\x64\vc15\lib

链接器-输入-附加依赖项:opencv_world410d.lib
opencv_img_hash410d.lib(一般需要的就是opencv_world410d.lib,我看到D:\OpenCV\opencv41\newbuild\install\x64\vc15\lib目录下有个opencv_img_hash410d.lib就也加上去了,应该不加也行)

至此,配置完成。重启vs2017即可。


6.测试文件(加载图片,提取SIFT特征点,并显示在图片上)

#include "pch.h"

#include <iostream>

#include <opencv2\opencv.hpp>

#include <opencv2\xfeatures2d\nonfree.hpp>

using namespace std;

using namespace cv;

using namespace cv::xfeatures2d;

int main()

{

    std::cout << "Hello World!\n";

    cv::Mat imageL = cv::imread("E:\\TEST\\DSC00013.png");

    //提取特征点方法

    //SIFT

    cv::Ptr<cv::xfeatures2d::SIFT> sift = cv::xfeatures2d::SIFT::create();

    //ORB

    //cv::Ptr<cv::ORB> orb = cv::ORB::create();

    //SURF

    /*cv::Ptr<cv::xfeatures2d::SURF> surf = cv::xfeatures2d::SURF::create();*/

    //特征点

    std::vector<cv::KeyPoint> keyPointL, keyPointR;

    //单独提取特征点

    sift->detect(imageL, keyPointL);

    //画特征点

    cv::Mat keyPointImageL;

    drawKeypoints(imageL, keyPointL, keyPointImageL, cv::Scalar::all(-1), DrawMatchesFlags::DEFAULT);

    //显示窗口

    cv::namedWindow("KeyPoints of imageL");

    //显示特征点

    cv::imshow("KeyPoints of imageL", keyPointImageL);

    cv::waitKey(0);

    return 0;

}

如下为最终图,这些彩色的小圈圈就是证明

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值