锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

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

时间:2023-10-24 17:07:06 lrn系列热继电器

最近,有一个项目需要使用OpenCV4.5.4Windows下的Debug x86版本。官方给出的是Debug/Release x64所以版本只能做OpenCV4.5.4编译源码。

工具准备

  1. OpenCV4.5.4源码获取

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

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

在这里插入图片描述
OpenCV默认版本是Debug/Release x64,所以我们不需要第一个文件夹。

  1. CMake3.21.3下载与安装

偷懒(其实不熟悉)CMake使用),直接下载CMake图形版


可以直接默认安装,其中一步是环境变量勾选一下,避免后续手动添加

  1. VS2019下载与安装

CMake生成opencv项目

在使用CMake在编译源代码之前,在目录下建立一个新的空文件夹buildx86

打开cmake-gui。源路径: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  #include  #include  #include   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;
}

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


链接器 → \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}

成功!

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章