• 使用CMake将OpenCV4.5.4编译成Windows下Debug x86版本


    近期,有个项目中需要用到OpenCV4.5.4Windows下的Debug x86版本。而官方给出的是Release x64版本的,因此只能将OpenCV4.5.4源码编译一下。

    工具准备

    1. OpenCV4.5.4源码获取

    官网下载速度堪忧,给出百度云链接:

    链接:https://pan.baidu.com/s/1lrN5_qc2Xc4INm_CGtBcTg 
    提取码:8khy 
    
    • 1
    • 2

    在这里插入图片描述
    OpenCV默认编译的版本是release x64,因此我们不需要第一个文件夹。

    1. CMake3.21.3下载与安装

    为了偷懒(其实是不熟悉CMake的使用),直接下载CMake的图形化版本

    在这里插入图片描述
    直接默认安装即可,其中有一步添加环境变量勾选一下,免得后续手动添加

    1. VS2019下载与安装

    CMake编译

    在使用CMake编译源码之前,新建一个空文件夹

    在这里插入图片描述

    打开CMake。源路径:D:\BaiduNetdiskDownload\opencv\sources,输出路径:D:\BaiduNetdiskDownload\opencv\buildx86

    在这里插入图片描述
    路径添加正确后,直接点击Configure

    在这里插入图片描述
    第一个勾选VS 2019,第二个选择Win32,千万别选错!点击Finish

    在这里插入图片描述
    来到飘红的界面,莫要着急继续Generate必须去查看一下CMakeDownloadLog.txt文件,看一下是否有什么文件没有下载下来。也可以选择去源路径的.cache文件夹下查看是否有0KB的文件。缺少的话一定要按照提供的网址去下载下来并放在对应位置。

    文件齐全后,勾选BUILD_EXAMPLESBUILD_OPENCV_WORLD后,继续Generate

    在这里插入图片描述

    出现此界面,成功了99%。一定要继续查看一下CMakeDownloadLog.txt,确保万无一失

    在这里插入图片描述

    VS2019生成install文件

    点击Open Project即可打开工程。若是已经关闭CMake,去输出路径找OpenCV.sln,直接双击也可

    在这里插入图片描述
    确保选择Debug Win32模式

    在这里插入图片描述
    打开解决方案,在CMakeTargets中选择INSTALL,右击生成,开始生成install文件

    这需要一点时间,可以去倒杯茶喝喝先!

    在这里插入图片描述
    这里出现一个报错:无法打开文件"python36_d.lib"。对于C++使用OpenCV应该没有影响。

    环境配置与测试

    新建一个test工程,选择Debug x86模式

    #include <opencv2/highgui.hpp>
    #include <opencv2/imgcodecs.hpp>
    #include <opencv2/imgproc.hpp>
    #include <iostream>
    
    int main()
    {
    	cv::Mat M(3, 3, CV_32FC2, cv::Scalar(1, 3));
    	// M.create(5, 5, CV_8UC(3));
    
    	std::cout << "==默认风格==\n" << cv::format(M, cv::Formatter::FMT_DEFAULT) << std::endl;
    	std::cout << "==Python风格==\n" << cv::format(M, cv::Formatter::FMT_PYTHON) << std::endl;
    	std::cout << "==Numpy风格==\n" << cv::format(M, cv::Formatter::FMT_NUMPY) << std::endl;
    	std::cout << "==C风格==\n" << cv::format(M, cv::Formatter::FMT_C) << std::endl;
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    将包含目录,库目录添加好

    在这里插入图片描述
    链接器 → \to 输入,添加.lib文件

    在这里插入图片描述
    至于opencv_world454.dll文件直接放在工程文件夹下以供调用,免得添加环境变量

    在这里插入图片描述
    输出结果

    ==默认风格==
    [1, 3, 1, 3, 1, 3;
     1, 3, 1, 3, 1, 3;
     1, 3, 1, 3, 1, 3]
    ==Python风格==
    [[[1, 3], [1, 3], [1, 3]],
     [[1, 3], [1, 3], [1, 3]],
     [[1, 3], [1, 3], [1, 3]]]
    ==Numpy风格==
    array([[[1, 3], [1, 3], [1, 3]],
           [[1, 3], [1, 3], [1, 3]],
           [[1, 3], [1, 3], [1, 3]]], dtype='float32')
    ==C风格==
    {1, 3, 1, 3, 1, 3,
     1, 3, 1, 3, 1, 3,
     1, 3, 1, 3, 1, 3}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    成功!

  • 相关阅读:
    Java 内置包装类——Object类
    驱动开发:STM32F7控制AD5663模拟量输出
    Bigder:40/100 怎么组织一次用例评审
    python图片分享平台毕业设计开题报告
    服务器又被挖矿记录
    服务器配置tomcat
    【Python 实战基础】Pandas如何使用日期和随机数生成表格数据类型
    Netty Review - 从BIO到NIO的进化推演
    vivo 短视频用户访问体验优化实践
    《动手学深度学习 Pytorch版》 4.3 多层感知机的简洁实现
  • 原文地址:https://blog.csdn.net/Star_ID/article/details/125623599