MFC窗口视频显示方法--OpenCV VFW模式
来源:互联网 发布:网络维护服务外包请示 编辑:程序博客网 时间:2024/06/09 18:16
这里将我看过的VC显示视频方法总结一下。一种看了三种方法。
方法一:OpenCV VFW
方法二:OpenCV DirectShow
方法三:直接的采用DirectShow,下面俄罗斯人写的
Video Preview and Frames Capture to Memory with SampleGrabber in Buffered Mode.
这些方法都是我编辑别人的,没有什么创新,只是一个使用方法。所以我只是介绍使用方法以及相关代码,可能有其他更好的办法。我只是一个刚刚入门者,有不妥之处,敬请拍砖。
OpenCV内置视频显示是采用VFW模式,我用的版本是2.45
代码如下:
1:先引入
#include <cv.h>
#include <highgui.h>
2:头文件定义变量
CvCapture* m_Camera;
IplImage* m_CameraFrame;
3、设置一个按钮,定义事件
void CEVisionDlg::OpenVideo(){ m_CameraFrame = 0; m_Camera = 0; HWND hWnd; HWND hParent; RECT rcDlg; //ScreenToClient int vWndType1Height; int vWndType1Windth; m_Camera = cvCreateCameraCapture( CV_CAP_ANY ); int intCamSRCWidth,intCamSRCHeight; int intImgSRCHeight,intImgSRCWindth; intCamSRCWidth=640; intCamSRCHeight=480; intImgSRCWindth=640; intImgSRCHeight=480; cvSetCaptureProperty( m_Camera, CV_CAP_PROP_FRAME_WIDTH, double(intCamSRCWidth)); cvSetCaptureProperty( m_Camera, CV_CAP_PROP_FRAME_HEIGHT, double(intCamSRCHeight)); intCamSRCWidth = int(cvGetCaptureProperty( m_Camera, CV_CAP_PROP_FRAME_WIDTH)); intCamSRCHeight = int (cvGetCaptureProperty( m_Camera, CV_CAP_PROP_FRAME_HEIGHT)); if (m_Camera > 0) { GetDlgItem(IDC_SHOW_IMG)->GetWindowRect(&rcDlg); vWndType1Windth = rcDlg.right - rcDlg.left -10; vWndType1Height = vWndType1Windth * intImgSRCHeight; vWndType1Height = vWndType1Height / intImgSRCWindth; cvNamedWindow("AIWndSrcCamera", CV_WINDOW_AUTOSIZE); //创建一个新窗口 hWnd = (HWND) cvGetWindowHandle("AIWndSrcCamera"); //通过名字获取窗口句柄 hParent = ::GetParent(hWnd); ::SetParent(hWnd, GetDlgItem(IDC_SHOW_IMG)->m_hWnd); ::ShowWindow(hParent, SW_HIDE); cvResizeWindow("AIWndSrcCamera", vWndType1Windth,vWndType1Height); IplImage* m_pFrame = cvCreateImage( cvSize(intImgSRCWindth,intImgSRCHeight), IPL_DEPTH_8U, 3); while (true) { m_CameraFrame =cvQueryFrame (m_Camera); if(!m_CameraFrame) return; else { if( m_CameraFrame->origin == IPL_ORIGIN_TL ) cvResize (m_CameraFrame, m_pFrame, CV_INTER_NN); else cvFlip( m_CameraFrame, m_pFrame, 0 ); cvShowImage("AIWndSrcCamera", m_pFrame); if ((cvWaitKey(10) & 255) == 27 ) return ; } } cvReleaseImage(&m_pFrame); }}
- MFC窗口视频显示方法--OpenCV VFW模式
- MFC窗口视频显示方法--OpenCV DirectShow模式
- MFC vfw视频捕获
- VFW-MFC视频采集
- 利用MFC和opencv读取视频显示图像方法
- OpenCV+MFC显示图像/视频
- OpenCV+MFC显示图像/视频
- opencv + MFC 视频图像显示
- MFC调用Opencv显示视频
- 基于mfc 通过openCV播放avi视频及多显示窗口实现
- 视频捕捉全教程(MFC+vfw)
- MFC:基于VFW的视频应用程序开发
- OpenCv显示窗口移植到MFC
- mfc窗口显示视频+抓图
- mfc中显示opencv单通道视频
- MFC+openCV对话框中显示视频
- 在mfc中用opencv显示视频
- MFC中用OpenCV库显示视频
- Linux下如何查看系统启动时间和运行时间
- Tomcat内存溢出的原因3种
- webstorm中使用CSDN的git功能
- 指针小知识
- IOS 预览word文档的集中方式
- MFC窗口视频显示方法--OpenCV VFW模式
- ConcurrentLinkedQueue
- QDUOJ-16 分糖果(图论, 广搜)
- mib库语法
- 深入Java,初探JVM
- Citrix:the attempt to snapshot the VDI failed错误提示的原因
- 多线程总览
- OCP-1Z0-053-V12.02-574题
- 数组Clone