windows 10 环境下 openCV如何编译源码生成32位库文件

一 概述

我需要将视频第一帧的图片保存下来当做视频的缩略图。但是我需要32位的环境,因为我朋友的电脑有可能不支持64位。官网下的windows版的环境只有64位。

二 实操

(一).下载openCV源文件

下载地址:https://opencv.org/releases/ 【注】不用下最新的,比新的旧一个版本最好。新的坑让烈士去踩吧,我们需要稳定就好。

如果想直接使用64位的库,直接下载2就可以了。2包括1中的源代码。我们下2就好了,下面是解压之后的目录,下过来是exe,其实不是安装,直接解压就好。

(二).下载CMake工具

下载地址:https://cmake.org/download/

(三). 通过CMake工具生成vs2019的openCV工程解决方案

中间会弹出一次选择编译工具和生成位数选择的界面

【注】1.如果要想生成opencv_world 需要在红色框哪里找到它,勾选上,随着版本不同,会有不同的版本号后缀名。

          2.把java 和 python的都去掉,我们又用不着,编译还花时间。

配置好之后,会需要一点时间等待生成,生成成功之后,就可以打开工程文件了。耗时的工作才刚开始。

(四).操作vs2019

只需要生成INSTALL就可以了,点击生成,接下来就是慢长的等待,一般不不会出错。

上面就是我们需要的32位的库文件。和官方64位的目录结构不是一样啊,就是少了java和python

唯一不同的是,我们的32位的lib和dll为什么这么多啊。而且也没有官方的opencv_world xxx 库。这是因为opencv_world需要在cmake编译时,勾选上。

opencv_world是把所有的库文件都打包在一起了,我们自己编译的是散装的,用到哪个可以选哪个。可以减少项目大小。

(五) 用一下

1.创建一个C++空项目

2.配置一下

2.1.配置头文件

2.2配置lib目录

2.3配置用到的lib

opencv_core451d.lib
opencv_video451d.lib
opencv_videoio451d.lib
opencv_imgcodecs451d.lib

2.4 将dll拷贝到运行目录

【注】d结尾表示debug版本,至于用到哪个库,根据报错提示去寻找,然后添加即可

3.3创建一个main.cpp文件

#include <opencv2/opencv.hpp>
#include <tchar.h> 
#include <stdio.h>  
#include <iostream>  
#include <math.h>  
#include <ostream> 
//#include<opencv2/core/core.hpp>
//#include<opencv2/video/video.hpp>
//#include<opencv2/highgui/highgui.hpp>

using namespace std;
using namespace cv;


void main()
{
	//类VideoCapture实例化再初始化
	//VideoCapture capture;
	//capture.open("Megamind.avi");
	//类VideoCapture实例化的同时初始化

	VideoCapture capture("G:/ResourcePool/视频/001.mp4");
	if (!capture.isOpened())
	{
		return;
	}

	int imgIndex = 0;
	/*for (;;)
	{*/
	Mat frame;
	capture >> frame;
	if (frame.empty())
	{
		/*break*/;
		return;
	}

	char* imageSaveName = new char[200];

	//将图片的路径及名称输入到imageSaveName中
	sprintf_s(imageSaveName, 200, "G:/ResourcePool/视频/%d.jpg", imgIndex);

	//将每一帧图像frame保存到imageSaveName指定的文件中
	imwrite(imageSaveName, frame);
	delete[] imageSaveName;
	/*	imgIndex++;
	}*/
	cout << "total frames1: " << imgIndex << endl;
}

【注】如果使用release版本,选择对应的lib和dll即可。不要直接复制debug版本,改名称,即去掉后缀d,这样有问题,会提示无法找到程序入口,最好的办法,就是清空生成目录,重新生成,然后运行,会提示缺少dll,这样少什么,就拷贝什么。2021-04-25

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值