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好啊


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

查看所有标签

猜你喜欢:

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

Android编程权威指南

Android编程权威指南

[美] Bill Phillips、[美] Brian Hardy / 王明发 / 人民邮电出版社 / 2014-4 / CNY 99.00元

权威、全面、实用、易懂,是本书最大的特色。本书根据美国大名鼎鼎的Big Nerd Ranch训练营的Android培训讲义编写而成,已经为微软、谷歌、Facebook等行业巨头培养了众多专业人才。作者巧妙地把Android开发所需的庞杂知识、行业实践、编程规范等融入一本书中,通过精心编排的应用示例、循序渐进的内容组织,以及循循善诱的语言,深入地讲解了Android开发的方方面面。如果学完一章之后仍......一起来看看 《Android编程权威指南》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具