VS2015安装
我安装的是VS2015pro版本 资源自己找 都一样 最好去官网下载(不要下载破解的,下载正版的 激活的时候去网上找一下激活方法就好了)
一定要记得打开安装包的时候,选择 以管理员的身份运行 (血泪教训)
opencv3.2.0
下载直接去官网下载就好了 https://opencv.org/opencv-3-2.html
最下方选择Win pack 下载就好
安装 要记住安装路径 (我都是放在D:\opencv3.2.0)
opencv-contrib3.2.0
下载地址https://github.com/opencv/opencv_contrib
找到对应的3.2.0版本的下载 zip的就可以 下载过后直接解压(我的在D:\opencv_contrib-3.2.0)
Cmake3.8.2
官网下载https://cmake.org/download/
我下载的是3.8.2版本 (用3.13版的出现了问题 所以我用回原来成功过的3.8.2版)
安装在默认目录下就行
Cmake配置与生成
第一个空 Browse Source 找到你opencv的安装目录下的opencv下的sources选择
第二个 找到opencv的安装目录下的opencv下的新建一个文件夹newbuild
然后就可以Configure (配置)了点击 选择安装环境选择VS2015 Win64(你电脑上的相应VS版本)
点击Finish就等吧
成功以后
找到
选择你刚解压的哦opencv3.2.0_contrib-3.2.0目录下的modules目录
(注意反斜杠)
修改完成后 就可以点击下方Generate (生成)
生成成功后 关闭Cmake
vs生成解决方案
找到newbuild目录下的Opencv(VS文件)打开
在VS中的资源管理器中找到CMkaeTargets 中的INSTALL 右键生成耐心等待 生成完成即可
添加Path
找到我的电脑右键选择属性 - 高级系统设置 - 高级 - 环境变量 - 系统变量 - Path
双击进入修改 点击添加 opencv目录下的newbuild- install - x64- vc14- bin目录 点确定
VS配置opencv
重新打开VS 新建一个项目
完成 找到属性管理器 -Dubug|x64 - Microsoft.Cpp.x64.user -右键属性
找到VC++ 目录 - 包含目录 修改添加opencv相应目录
添加上面三个opencv目录。
添加上面一个opencv相应目录
找到链接器中的 输入 - 附加依赖项
在上面空白处复制上
opencv_calib3d320d.lib
opencv_core320d.lib
opencv_cudaarithm320d.lib
opencv_cudabgsegm320d.lib
opencv_cudacodec320d.lib
opencv_cudafeatures2d320d.lib
opencv_cudafilters320d.lib
opencv_cudaimgproc320d.lib
opencv_cudalegacy320d.lib
opencv_cudaobjdetect320d.lib
opencv_cudaoptflow320d.lib
opencv_cudastereo320d.lib
opencv_cudawarping320d.lib
opencv_cudev320d.lib
opencv_features2d320d.lib
opencv_flann320d.lib
opencv_highgui320d.lib
opencv_imgcodecs320d.lib
opencv_imgproc320d.lib
opencv_ml320d.lib
opencv_objdetect320d.lib
opencv_photo320d.lib
opencv_shape320d.lib
opencv_stitching320d.lib
opencv_superres320d.lib
opencv_video320d.lib
opencv_videoio320d.lib
opencv_videostab320d.lib
这是我的lib目录下的所有lib文件名
小技巧:
往vs里面输入上面的.lib是不是很崩溃?
例如要获取目录中E:\opencv\newbuild\install\x64\vc14\lib下的所有静态链接库文件名并存储至文本.txt,方法如下:
1、win+r
2、输入:cmd回车
3、输入:cd /e E:\opencv\newbuild\install\x64\vc14\lib 回车
4、输入:dir /b *.lib >0.txt 回车
---------------------
作者:吕小猪不坏
来源:CSDN
原文:https://blog.csdn.net/wokaowokaowokao12345/article/details/48881473
完成之后就可以看一下下面的示例程序:
#include<opencv2/opencv.hpp>
#include<iostream>
#include<opencv2/xfeatures2d.hpp>
#include<math.h>
using namespace cv;
using namespace std;
using namespace xfeatures2d;
Mat img1,img2;
int main(int argc, char** argv)
{
img1 = imread("D:/test/machesBook.png", 0);
img2 = imread("D:/test/Book.png", 0);
if (!img1.data||!img2.data)
{
cout << "图片未找到" << endl;
return -1;
}
imshow("Book", img1);
imshow("machesBook", img2);
//使用surf算子求特征点
int minHession = 400;
Ptr<SURF> detector = SURF::create(minHession);
vector<KeyPoint> keypoints_1;//img1的特征点存储
vector<KeyPoint> keypoints_2;//imh2的特征点存储
Mat descriptor_1, descriptor_2;
detector->detectAndCompute(img1,Mat(),keypoints_1,descriptor_1);//检测特征点并计算描述子
detector->detectAndCompute(img2, Mat(),keypoints_2, descriptor_2);
使用BruteForce(暴力匹配)进行匹配
BFMatcher bfmatcher;
vector<DMatch> matchs; //存储里面的一些点的信息
bfmatcher.match(descriptor_1, descriptor_2, matchs, Mat());
Mat resultImg;
drawMatches(img1, keypoints_1, img2, keypoints_2, matchs, resultImg);
imshow("BruteForce demo", resultImg);
waitKey(0);
return 0;
}
这是代码所需的图片:
结果图: