如何在Win32 c ++应用程序中添加OpenCV显示窗口作为另一个窗口的子窗口?

时间:2013-02-21 15:46:50

标签: c++ opencv win32gui

我有一个framegrabber(Silicon Software),我设法使用OpenCV显示内存缓冲区中指针的抓取图像。

现在我想创建一个应用程序(Win32)并将openCV窗口作为主应用程序窗口的子窗口。 有人有任何想法吗?

3 个答案:

答案 0 :(得分:3)

我找到了答案,这很容易。只需几行代码。 这是:

cv::namedWindow("test",cv::WINDOW_AUTOSIZE);                        
hWnd2 = (HWND) cvGetWindowHandle("test"); 
hParent = ::GetParent(hWnd2);       
::SetParent(hWnd2, hParent); 
::ShowWindow(hParent, SW_HIDE);

答案 1 :(得分:2)

如果你想拥有自己的窗户,可能更好,跳过整个高贵的东西, 并做你自己的blitting。

看看cvShowImage()的src,highgui / src / window_w32.cpp,l 1384,看看他们在这里做什么

答案 2 :(得分:-1)

不完全知道“子窗口”的含义,但您可以从OpenCV的IplImage格式中获取像素信息,并将其转换为窗口所需的任何格式。