我有一个帧抓取器(Silicon Software),我设法使用OpenCV显示了从内存缓冲区中的指针抓取的图像。
现在我想创建一个应用程序(Win32),并将openCV窗口作为主应用程序窗口的子窗口。有人知道吗?
我找到了答案,非常简单。只有几行代码。在这里:
cv::namedWindow("test",cv::WINDOW_AUTOSIZE);
hWnd2 = (HWND) cvGetWindowHandle("test");
hParent = ::GetParent(hWnd2);
::SetParent(hWnd2, hParent);
::ShowWindow(hParent, SW_HIDE);
如果你想要自己的窗口,最好跳过整个highgui的东西,还有你自己的闪电战。
看看cvShowImage()的src,highgui/src/window_w32.cpp,l 1384,看看他们在这里做什么
不知道"子窗口"的确切含义,但您可以从OpenCV的IplImage格式中获取像素信息,并将其转换为您的窗口所需的任何格式。