OpenCV 3.1.0编译与添加扩展模块

简介: OpenCV 3.1.0编译与添加扩展模块

OpenCV 3.1.0编译与添加扩展模块

最近在弄个东西,需要把OpenCV的扩展模块中的xfeatures给包含进来,发现要自己编译OpenCV3.1.0与其扩展模块才可以实现。经过一番实践,终于编译完成,总结了一下,其实很简单,只要如下三步即可实现。在正式开始之前,有些准备工作需要做,就是下载OpenCV3.1.0还有其扩展模块,以及CMake GUI工具。

OpenCV3.1.0下载地址:

https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.1.0/opencv-3.1.0.exe/download

把OpenCV就解压缩到指定目录,其中我是把OpenCV解压缩到

然后安装CMake GUI,默认安装即可。

好了之后就正式开始。

第一步

配置与生成CMake, 打开CMake GUI之后,选择好路径,点击配置,在打开的对话框中一定要选择VS14 Windows 64才可以。然后它就会自动运行得到如下结果:


然后找到OPENCV_EXTRA_MODULE_PATH设置扩展模块的路径运行完成显示如下:

第二步:

配置VS生成installer,首先到CMake的Build输出目录

D:\opencv3.1\opencv\newbuild下找到OpenCV.sln文件,双击打开之后,右键选择

->重新生成解决方案,然后在找到CMakeTargets->INSTALL, 右键选择生成installer即可。这样就会在D:\opencv3.1\opencv\newbuild下面多出一个installer的文件夹,到如果能成功生成,编译就结束了。

第三步:

重新配置OpenCV,新建一个项目打开,到【视图】-》【其它窗口】-》【属性管理器】然后选择64 debug下的User Cpp从属性中打开配置窗口

分别设置好 包含目录

库目录

还有附件依赖项中添加如下:

opencv_calib3d310d.lib

opencv_core310d.lib

opencv_features2d310d.lib

opencv_flann310d.lib

opencv_highgui310d.lib

opencv_imgcodecs310d.lib

opencv_imgproc310d.lib

opencv_ml310d.lib

opencv_objdetect310d.lib

opencv_photo310d.lib

opencv_shape310d.lib

opencv_stitching310d.lib

opencv_superres310d.lib

opencv_ts310d.lib

opencv_video310d.lib

opencv_videoio310d.lib

opencv_videostab310d.lib

ippicvmt.lib

opencv_xfeatures2d310d.lib

opencv_xobjdetect310d.lib


最后千万别忘记把bin目录改过来, 我的编译生成的OpenCV v14/bin的目录如下:

D:\opencv3.1\opencv\newbuild\install\x64\vc14\bin


添加到系统的环境变量中即可。把原来的去掉。这样就可以使用OpenCV扩展模块xfeatures2d了。测试代码与运行结果如下:

#include <stdio.h>
#include <iostream>
#include "opencv2/core.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/xfeatures2d.hpp"
#include "opencv2/highgui.hpp"

using namespace cv;
using namespace cv::xfeatures2d;
using namespace std;

int main(int argc, char** argv) {
    Mat img_1 = imread("D:/vcprojects/images/test.png", IMREAD_GRAYSCALE);   
    if (img_1.empty()) {
        printf("could not load image...\n");
        return -1;
    }
    imshow("input image", img_1);

    int minHessian = 400;
    Ptr<SURF> detector = SURF::create(minHessian);
    vector<KeyPoint> keypoints;
    detector->detect(img_1, keypoints);

    Mat img_keypoints1;
    drawKeypoints(img_1, keypoints, img_keypoints1, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
    namedWindow("key points", CV_WINDOW_AUTOSIZE);
    imshow("key points", img_keypoints1);

    waitKey(0);
    return 0;
}

基于xfeature实现SURF特征检测的运行结果如下:

关注微信公众号【OpenCV学堂】获取图像处理相关知识。

相关文章
|
20天前
|
机器学习/深度学习 并行计算 计算机视觉
【入坑指南】| OpenCV4.8 + CUDA + 扩展模块支持编译
【入坑指南】| OpenCV4.8 + CUDA + 扩展模块支持编译
52 0
|
20天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
Win7上编译OpenCV3.2与扩展模块
Win7上编译OpenCV3.2与扩展模块
14 0
|
1月前
|
Ubuntu 编译器 C++
Ubuntu系统下编译OpenCV4.8源码
本文档介绍了在Ubuntu系统下编译和安装OpenCV4.8的简单步骤:首先,通过wget命令下载源码包,然后解压;接着,安装必要的编译器和第三方库支持;最后,在源码目录创建build文件夹,执行cmake和make安装。整个过程包括下载、安装依赖和编译安装三个主要步骤。
41 6
|
1月前
|
C语言 计算机视觉
opencv 编译objects.a(vs_version.rc.obj)‘ is incompatible with i386:x86-64 output
opencv 编译objects.a(vs_version.rc.obj)‘ is incompatible with i386:x86-64 output
19 0
|
8天前
|
算法 计算机视觉
【Qt&OpenCV 图像的感兴趣区域ROI】
【Qt&OpenCV 图像的感兴趣区域ROI】
13 1
|
8天前
|
运维 算法 计算机视觉
【Qt&OpenCV 图像的模板匹配 matchTemplate/minMaxLoc】
【Qt&OpenCV 图像的模板匹配 matchTemplate/minMaxLoc】
8 1
|
20天前
|
计算机视觉
OpenCV中图像算术操作与逻辑操作
OpenCV中图像算术操作与逻辑操作
18 1
|
21天前
|
计算机视觉
OpenCV图像二值化
OpenCV图像二值化
|
21天前
|
存储 Cloud Native Linux
OpenCV图像翻转和旋转
OpenCV图像翻转和旋转
|
21天前
|
存储 Cloud Native Linux
OpenCV鼠标操作(画红色方框截取图像)
OpenCV鼠标操作(画红色方框截取图像)