windows下的opencv3.4.5+opencv_contrib-3.4.5编译使用

1.准备工具

visual studio2019
cmake-gui
opencv3.4.5+opencv_contrib-3.4.5源码

2.源码处理

1.源码下载后的目录如下,放在一个还有较多空间的位置,这个编译后比较大:
在这里插入图片描述
2.打开cmake-gui.exe,将opencv3.4.5源码位置填入,将构建输出文件位置也填入
在这里插入图片描述

在这里插入图片描述
3.点击configure按钮,选择自己的版本,我这里选择2019,然后finish
在这里插入图片描述
这里会出现一些问题:ffmpegippicvface_landmark_model.dat这些无法下载导致错误
这里需要大家在github上下载对应版本的文件(我这里的链接是3.4.5的)
例如:ffmpeg下载失败,找到自己的opencv3.4.5的源码路径,在里面有3rdparty文件夹,打开里面有各个第三方库的文件,找到ffmpeg文件夹,打开ffmpeg.cmake文件,在第一行就可以看到需要的文件版本。
在这里插入图片描述
将下面三个文件下载后拷贝到自己的opencv3.4.5的源码目录中的==.cache==中,并且重命名为对应的三个文件,前半部分是hash码。
在这里插入图片描述
在这里插入图片描述
同理:找到ippicv文件夹中的ippicv.cmake,找到对用的版本windows下的x86_64,在github上找到对应版本并下载到.cache文件夹中重命名即可。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
face_landmark_model.dat fail这个错误需要在文件的CMakeLists.txt中修改(其实前面的也可以,修改的是xx.cmake文件),打开xxx\opencv_contrib-3.4.5\modules\face文件夹,修改其中CMakeLists.txt。添加具体的下载路径

      "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat"

完整代码如下

ocv_download(
    FILENAME face_landmark_model.dat
    HASH ${__file_hash}
    URL
      "${OPENCV_FACE_ALIGNMENT_URL}"
      "$ENV{OPENCV_FACE_ALIGNMENT_URL}"
      "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat"
      "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${__commit_hash}/"
    DESTINATION_DIR "${CMAKE_BINARY_DIR}/${OPENCV_TEST_DATA_INSTALL_PATH}/cv/face/"
    ID "data"
    RELATIVE_URL
    STATUS res
)

3.编译选择
首先在buiild选项中找到build_opencv_world(这里是将opencv的库文件打包,方便后续导入,不需要一个个导入)
在这里插入图片描述
其次,在opencv的选项中勾选nonfree选项,并且添加opencv_contrib-3.4.5/modules的路径
在这里插入图片描述
最后进行confingure和generate
在这里插入图片描述

3.源码编译

点击open project打开项目,如下点击生成,注意有debug和release两个版本,自己看需要编译
在这里插入图片描述
然后设置install为启动项,生成一些列后续使用的工具。

4.opencv库的使用

配置项目中opencv的头文件以及lib库文件,同时将对应的dll文件拷贝到可执行程序的同级目录下,例如opencv_world345d.dll或者opencv_world345.dll
在项目的属性页中配置:如下图
在这里插入图片描述在这里插入图片描述

5.测试代码

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

int main() {
    // 读取图片
    cv::Mat image = cv::imread("path_to_your_image.jpg");

    // 检查是否成功读取图片
    if (image.empty()) {
        std::cout << "无法读取图片" << std::endl;
        return -1;
    }

    // 使用SIFT算法检测关键点
    cv::Ptr<cv::xfeatures2d::SIFT> sift = cv::xfeatures2d::SIFT::create();
    std::vector<cv::KeyPoint> keypoints;
    sift->detect(image, keypoints);

    // 在图像上绘制关键点
    cv::Mat image_with_keypoints;
    cv::drawKeypoints(image, keypoints, image_with_keypoints);

    // 创建窗口并显示图片
    cv::namedWindow("Image with Keypoints");
    cv::imshow("Image with Keypoints", image_with_keypoints);
    cv::waitKey(0);

    return 0;
}

参考文章

win10+cuda安装+cudnn
win10+vs2017+opencv4.5.0+opencv_contrib-4.5.0+cuda源码编译
Win10+VS2017+Opencv4配置contrib扩展

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值