opencv - 如何在MFC中显示opencv框架?

标签 opencv mfc webcam

我正在编写一个opencv代码,并想使用MFC在GUI上显示框架。

问题是我不知道如何。

在OnInitDialog()中

如果我尝试将cvWindow嵌入到MFC窗体中,则可以使用。

display = new IplImage(trackview);//trackview is a totally black Mat.
    cvNamedWindow("IDC_STATIC_OUTPUT", 0); 
    cvResizeWindow("IDC_STATIC_OUTPUT", 480, 640);

    hWnd = (HWND) cvGetWindowHandle("IDC_STATIC_OUTPUT"); 
    hParent = ::GetParent(hWnd); 
     ::SetParent(hWnd, GetDlgItem(ID_DISPLAY)->m_hWnd); 
     ::ShowWindow(hParent, SW_HIDE); 

    cvShowImage("IDC_STATIC_OUTPUT", display);

但是,当我嵌入OpenCV代码并打开摄像头时,GUI没有响应,并且无法显示框架。即使我只是将此示例代码(打开的网络摄像头)添加到OnInitDialog(),也不会显示申请表格。

我写了一个“imwrite(” frame.png“,tmp)”,这很奇怪,该框架可以被写入文件。但是GUI没有响应。
while( true )
    {
        CvCapture* capture;
        capture = cvCaptureFromCAM(0);
        frame = cvQueryFrame( capture );
        Mat tmp(frame);
        imwrite("frame.png",tmp);
    }

顺便说一句,还有什么更好的方法可以在MFC上显示OpenCV IplImage?有一个cvvImage.showImage()函数,但是在Opecv 2.4版本中将其丢弃。

最佳答案

请在while循环中尝试cvWaitkey(30)。 cvShowImage可能需要一些时间才能显示图像。

关于opencv - 如何在MFC中显示opencv框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16511197/

相关文章:

c++ - 在 Visual Studio 2013 中使用 opencv

c++ - 如何在opencv中找到一条线的终点?

python-2.7 - 在 python 中流式传输视频使用 pygame lib

android - Android 下 unity3d 中的 webcamTexture 旋转不同

video - 使用复杂过滤器的网络摄像头流中的ffplay问题

python - openCV中的旋转矩阵

c++ - 在opencv和c++中画西门子星

c++ - 如何使用消息访问mfc控件?

c++ - MFC C++ 在树控件中填充数据

c++ - Windows CE MessageBox 不显示 unicode 文本和图标透明度