我想使用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 :(
在StackOverflow上也有类似的问题,但这些问题要么针对旧式OpenCV,要么针对Android操作系统。
我在Windows 7 64x
Opencv 2.4.3上
感谢任何可以回答这个问题的人。
Helenr
叮当猫咪