OpenCV实现简单的录屏功能

本文介绍了如何利用OpenCV的VideoWriter模块实现简单的录屏功能。通过VideoWriter的open、write和release方法,配合屏幕截图,将捕获的每一帧数据保存到视频文件。在处理BMP图像数据时,需要注意数据的排列顺序以及行宽对齐问题。测试代码展示了如何录制100帧,并指出了在实际应用中应考虑的帧率设定和dll文件放置位置。
摘要由CSDN通过智能技术生成

OpenCV中VideoCapture和VideoWriter用于读写视频文件,这里的录屏功能用到VideoWriter,用于将捕获的屏幕的每一帧数据保存到视频文件。
VideoWriter写视频文件的步骤

  1. bool open(const String& filename, int fourcc, double fps,Size frameSize, bool isColor = true);
  2. void write(InputArray image);或者VideoWriter& operator << (const Mat& image);
  3. void release();

下列代码用于获取屏幕的截图

int width = GetSystemMetrics(SM_CXSCREEN);
int height = GetSystemMetrics(SM_CYSCREEN);
HDC hdcScreen = GetDC(NULL);
HDC hdcMemDC = CreateCompatibleDC(hdcScreen);
HBITMAP hbmScreen = CreateCompatibleBitmap(hdcScreen, width, height);

BITMAPINFO bi;
bi.bmiHeader.biSize = sizeof(bi.bmiHeader);
bi.bmiHeader.biWidth = width;
bi.bmiHeader.biHeight = height;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biBitCount = 24;
bi.bmiHeader.biCompression = BI_RGB;
bi.bmiHeader.biSizeImage = 0;
bi.bmiHeader.biXPelsPerMeter = 0;
bi.bmiHeader.bi
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值