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

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

内容简介: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-4 / 79.00元

算法之大,大到可以囊括宇宙万物的运行规律;算法之小,小到寥寥数行代码即可展现一个神奇的功能。算法的应用和乐趣在生活中无处不在: 历法和二十四节气计算使用的是霍纳法则和求解一元高次方程的牛顿迭代法; 音频播放器跳动的实时频谱背后是离散傅立叶变换算法; DOS时代著名的PCX图像文件格式使用的是简单有效的RLE压缩算法; RSA加密算法的光环之下是朴实的欧几里德算法、蒙哥马利算......一起来看看 《算法的乐趣》 这本书的介绍吧!

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

在线压缩/解压 CSS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

html转js在线工具
html转js在线工具

html转js在线工具