相关疑难解决方法(0)

如何在OpenCV中捕获桌面(即将位图转换为Mat)?

我想使用OpenCV来处理我的桌面,就好像它是一个视频流.
我熟悉OpenCV.
我不熟悉Windows API.我意识到还有其他方法来捕获屏幕,但出于我的问题的目的,我需要使用OpenCV来完成它.

这是我的(超级天真)代码:

HWND hDesktopWnd;
HDC hDesktopDC;
hDesktopWnd=GetDesktopWindow();
hDesktopDC=GetDC(hDesktopWnd);

// get the height and width of the screen
int height = GetSystemMetrics(SM_CYVIRTUALSCREEN);
int width = GetSystemMetrics(SM_CXVIRTUALSCREEN);

// create a bitmap
HBITMAP hbDesktop = CreateCompatibleBitmap( hDesktopDC, width, height);

Mat src(height,width,CV_8UC4);
src.data = (uchar*)hbDesktop;

imshow("output",src);  //fails :(
Run Code Online (Sandbox Code Playgroud)

StackOverflow也有类似的问题,但它们要么是旧式OpenCV,要么是Android操作系统.
我在Windows 7 64x
Opencv 2.4.3上

谢谢任何能回答这个问题的人.

desktop opencv bitmap mat

26
推荐指数
2
解决办法
3万
查看次数

OpenCV 桌面捕获

如何在 OpenCV 中捕获桌面(即将位图转换为 Mat)?

你好,

谁能向我解释我将如何在 OpenCV 中使用此代码来捕获桌面屏幕?我一直试图让它工作大约 30-45 分钟,但是当我运行它时,我的屏幕没有捕获任何内容。

在我的主要申请中,我有以下三个陈述

HWND hwndDesktop = GetDesktopWindow();
hwnd2mat(hwndDesktop);
imshow("output", src);
Run Code Online (Sandbox Code Playgroud)

我正在调用上面链接中的函数 hwnd2mat。我是菜鸟。

感谢任何回答的人。

c++ opencv opencv3.0

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

opencv ×2

bitmap ×1

c++ ×1

desktop ×1

mat ×1

opencv3.0 ×1