gpt4 book ai didi

c++ - 使用 OpenCV 在 MFC/C++ 应用程序中显示图像

转载 作者:太空狗 更新时间:2023-10-29 19:46:52 24 4
gpt4 key购买 nike

我想在 MFC 应用程序中显示我使用 OpenCV(cvCaptureFromAVI 函数)从 avi 文件捕获的帧。

我是 MFC 的新手,但感觉我快要让它工作了。但是这些帧不是显示在图片框中,而是显示在新窗口中。

cvGetWindowName 始终返回空值。

这是我的代码:

CWnd* hPic = 0;
hPic = GetDlgItem(IDC_STATICPIC1);
const char* szWindName = cvGetWindowName(hPic->GetSafeHwnd());
cvShowImage(szWindName, frame_copy);

最佳答案

因此,经过长时间的研究,我找到了一些可以让它发挥作用的东西。

解决方案是创建窗口,然后将其插入图片框内。我不确定这是好的做法,但目前我还没有找到更好的方法。

cvNamedWindow("IDC_STATIC_OUTPUT", 0); 
cvResizeWindow("IDC_STATIC_OUTPUT", 420, 240);

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

cvShowImage("IDC_STATIC_OUTPUT", frame_copy);

在这种情况下,图片框称为 IDC_PIC1,frame_copy 是一个 OpenCV IplImage。

希望这对某人有帮助。

关于c++ - 使用 OpenCV 在 MFC/C++ 应用程序中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6350753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com