zoukankan      html  css  js  c++  java
  • 【MFC两种视频图像採集方法】DirectShow与Opencv

    效果图:


    DirectShow採集核心代码:

    创建线程调用该函数,採集图像通过x264解码封装rtmp协议包。推送至FMSserver,可实现视频直播
    UINT __stdcall StartVideo(void *c)
    {
    	CVideoConf *conf = (CVideoConf *)c;
    	int vid = conf->code;
    	CString strurl(conf->rtmpurl);
    	CWnd *pW = conf->pW;
    
    	CCameraDS  camera;
    	if (!camera.OpenCamera(0,false));
    	{  
    		TRACE("OpenCamera error.....");  
    	}
    
    	while(true)
    	{
    		CvvImage cimg;
    		CRect rect;
    		
    		IplImage *m_Frame ;
    		BYTE *data1 =  camera.QueryFrame(); 
    		m_Frame = cvCreateImageHeader(cvSize(320,240),IPL_DEPTH_8U,3);
    		m_Frame->origin = 1;
    		cvSetData(m_Frame,data1,320*3);
    
    		CDC *pDC = pW->GetDC();                                                        
    		HDC hDC  = pDC->GetSafeHdc();
    		pW->GetClientRect(&rect); 
    		cimg.CopyOf((IplImage *)m_Frame); //复制图片
    		cimg.DrawToHDC(hDC, &rect);	 //显示指定区域
    		HWND hWnd = pW->GetSafeHwnd();                                  
    		ReleaseDC(hWnd,hDC); 
    
    	}
    
    
    	return 0;	
    }

    Opencv採集核心代码:

    UINT __stdcall StartVideo(void *c)
    {
    	CVideoConf *conf = (CVideoConf *)c;
    	int vid = conf->code;
    	CString strurl(conf->rtmpurl);
    	CWnd *pW = conf->pW;
    
    	CCameraDS  camera;
    	if (!camera.OpenCamera(0,false));
    	{  
    		TRACE("OpenCamera error.....");  
    	}
    	CvCapture* pCapture = cvCreateCameraCapture(0); //opencv打开视频 
    	while(true)
    	{
    		CvvImage cimg;
    		CRect rect;
    		
    		IplImage *m_Frame=cvQueryFrame( pCapture );//opencv捕获帧 
    
    		CDC *pDC = pW->GetDC();                                                        
    		HDC hDC  = pDC->GetSafeHdc();
    		pW->GetClientRect(&rect); 
    		cimg.CopyOf((IplImage *)m_Frame); //复制图片
    		cimg.DrawToHDC(hDC, &rect);	 //显示指定区域
    		HWND hWnd = pW->GetSafeHwnd();                                  
    		ReleaseDC(hWnd,hDC); 
    
    	}






  • 相关阅读:
    命令
    碎片知识
    驱动问题
    网络基础知识普及
    面向设计大作业——公司餐厅
    面向对象--购物车
    OO之接口-DAO模式代码阅读及应用
    有理数类的定义
    图知识点总结
    Java课程设计总结
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5125392.html
Copyright © 2011-2022 走看看