Install OpenCV3.2 & opencv_contrib(Windows 10 + VS2015 + CMake)

栏目: 编程工具 · 发布时间: 7年前

内容简介:Install OpenCV3.2 & opencv_contrib(Windows 10 + VS2015 + CMake)

在OpenCV3.2上面用xfeatures2d着实是很多坑。

稍微记录下踩过的坑,以后就有经验了,

不过以后可能没有太多机会接触CV了,还是RL好玩啊。

0X00001 事前准备

  • System: Windows 10
  • IDE: Visual Studio 2015
  • CMake: Version 3.8.1
  • Download or clone the laster version, both OpenCV & opencv_contrib ( It’s important that they have the same version! It’s very important )

git clone https://github.com/opencv/opencv.git

git clone https://github.com/opencv/opencv_contrib.git

0X00002 使用CMake编译OpenCV和opencv_contrib

这里嫌麻烦就直接用CMake-gui来编译

  • 首先填写源代码的路径和编译输出的路径,第一编译暂时不要用到opencv_contrib,注意选择合适的compiler(这里我是VS2015).

Install OpenCV3.2 & opencv_contrib(Windows 10 + VS2015 + CMake)

Install OpenCV3.2 & opencv_contrib(Windows 10 + VS2015 + CMake)

  • 第二次编译前,加入需要额外编译的opencv_contrib,具体是在 OPENCV_EXTRA_MODULES_PATH 进行设置。
  • 然后先点击configure,确认无误之后,再点generate进行二次编译。

Install OpenCV3.2 & opencv_contrib(Windows 10 + VS2015 + CMake)

Install OpenCV3.2 & opencv_contrib(Windows 10 + VS2015 + CMake)

  • 点击Open Project,用VS打开这个工程(或者手动找到sln也行),打开后rebuild solution
    • 注意有debug和release两种模式,别搞错了。
  • 再单独编译INSTALL,编译好之后应该就可以用了。

Install OpenCV3.2 & opencv_contrib(Windows 10 + VS2015 + CMake)

另外如果你在compile的过程中遇到任何问题,除去网路问题,最大的可能就是OpenCV的版本和opencv_contrib的版本不统一,请务必保证这件事。

0X00003 环境变量以及VS配置

  • 先将刚才便编译好的opencv加入到path中,位置会在XXXX\install\x64\vc14\bin
  • 打开VS2015,新建一个空的项目
  • 找到项目->属性->VC++目录 (Project-Propety-VC++ Directories)
    • (1)设置include directories
      • 加入XXXX\install\include
    • (2)设置library directories
      • 加入XXXX\install\x64\vc14\lib
  • 找到项目->属性->链接器->输入 (Project-Propety-Linker-Input)
    • (3)加入额外的lib (直接把XXXX\install\x64\vc14\lib下的lib全加进去好了)
      • 如果是debug模式,lib是这样的命名:opencv_xfeatures2d320d.lib
      • 如果是release模式,lib是这样的命名:opencv_xfeatures2d320.lib
      • 区别就是最后的d(debug)

Install OpenCV3.2 & opencv_contrib(Windows 10 + VS2015 + CMake)

0X00004 测试SIFT

#include <opencv2\opencv.hpp>
#include <opencv2\xfeatures2d.hpp>

int main() {

  cv::Mat img_1 = cv::imread("test.jpg", cv::IMREAD_GRAYSCALE);
  cv::Mat img_2 = img_1.clone();
  if (!img_1.data || !img_2.data) {
    std::cout << "画像がよみこめません" << std::endl; return -1;
  }
  int minHessian = 400;
  cv::Ptr < cv::xfeatures2d::SURF>detectorSURF = cv::xfeatures2d::SURF::create(minHessian);
  cv::Ptr < cv::xfeatures2d::SIFT>detectorSIFT = cv::xfeatures2d::SIFT::create(minHessian);
  std::vector < cv::KeyPoint>keypoints_1, keypoints_2;
  detectorSURF->detect(img_1, keypoints_1);
  detectorSIFT->detect(img_2, keypoints_2);

  cv::Mat img_1_keypoints;
  cv::Mat img_2_keypoints;
  cv::drawKeypoints(img_1, keypoints_1, img_1_keypoints, cv::Scalar::all(-1), cv::DrawMatchesFlags::DEFAULT);
  cv::drawKeypoints(img_2, keypoints_2, img_2_keypoints, cv::Scalar::all(-1), cv::DrawMatchesFlags::DEFAULT);

  cv::imshow("INPUT_IMG", img_1);
  cv::imshow("SURF_IMG", img_1_keypoints);
  cv::imshow("SIFT_IMG", img_2_keypoints);
  cv::waitKey(0);
  return 0;
}

Install OpenCV3.2 & opencv_contrib(Windows 10 + VS2015 + CMake)

值得一提的是OpenCV3.x在很多地方code写法和OpenCV2.x很不一样。

0X00005 非常有用的参考资料

因为自己记录,所有只写关键步骤,如果你需要比较详细的说明,参考下面的链接

我觉得我真的不适合搞CV…还是我的DL和RL好啊


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

国家窃听

国家窃听

真溱 / 中信出版社 / 2015-8 / 48.00元

《国家窃听》以轻松而略带调侃的“冷幽默”风格,讲述了美国情报监视帝国大量不为人知的故事。本书以严谨而专业的视角,将“斯诺登事件”放在21世纪以来美国“全球反恐战争”以及美国情报界几十年发展的大背景下进行考察,揭示出这一事件的内在逻辑和历史必然。作者前期搜集、筛选、整理的一手素材在故事叙述过程中清晰而多层次地呈现,令本书堪称一部非虚构的美国情报界演义。一起来看看 《国家窃听》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具