博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【MFC两种视频图像採集方法】DirectShow与Opencv
阅读量:4663 次
发布时间:2019-06-09

本文共 1643 字,大约阅读时间需要 5 分钟。

效果图:

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); 	}

转载于:https://www.cnblogs.com/mfrbuaa/p/5125392.html

你可能感兴趣的文章
Eclipse Jee Neon打开时报错 code=13的问题
查看>>
pymysql
查看>>
restframework之序列化
查看>>
配置网卡
查看>>
使用Asp.net mvc + Linq + mvc_scaffold_gen_setup.exe 生成一个完整的家庭帐册大管家程序 之二...
查看>>
利用URL重写隐藏复杂的URL
查看>>
支持二次开发的Zigbee模块(SNAP技术)
查看>>
Confluence 6 生产环境备份策略
查看>>
springmvc.xml配置
查看>>
C primer plus 学习随笔(1)
查看>>
Java 哈希表运用-LeetCode 1 Two Sum
查看>>
【codeforces 548B】Mike and Fun
查看>>
【2017 Multi-University Training Contest - Team 4】Counting Divisors
查看>>
ASP .NET数据写入oracle数据库
查看>>
shiro添加注解@RequiresPermissions不起作用
查看>>
wxwidgets和CodeBlocks+mingw在win7下安装和配置
查看>>
69道Spring面试题和答案
查看>>
android DIY 2
查看>>
[福大软工] Z班——个人技术博客评分
查看>>
sharepoint2010匿名访问
查看>>