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


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

查看所有标签

猜你喜欢:

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

人工智能产品经理——AI时代PM修炼手册

人工智能产品经理——AI时代PM修炼手册

张竞宇 / 电子工业出版社 / 2018-6 / 59

随着人工智能热潮的兴起,企业对人工智能领域产品经理的人才需求也开始井喷,人工智能产品经理成为顺应时代潮流的重要人力资源。实际上,人工智能确实给现有的产品和服务带来了全方位的升级,这也给产品经理从业人员提出了更高的要求,是关注人工智能产品的产品经理们面临的一次关键转型考验。 《人工智能产品经理——AI时代PM修炼手册》从知识体系、能力模型、沟通技巧等方面帮助大家系统地梳理了人工智能产品经理所必......一起来看看 《人工智能产品经理——AI时代PM修炼手册》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

SHA 加密
SHA 加密

SHA 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试