效果图:

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

【MFC两种视频图像採集方法】DirectShow与Opencv相关推荐

  1. 一种基于深度学习的目标检测提取视频图像关键帧的方法

    摘要:针对传统的关键帧提取方法误差率高.实时性差等问题,提出了一种基于深度学习的目标检测提取视频图像关键帧的方法,分类提取列车头部.尾部及车身所在关键帧.在关键帧提取过程中,重点研究了基于SIFT特征 ...

  2. matlab截视频人脸,一种视频图像中人脸图像截取方法与流程

    本发明涉及人工智能领域,具体涉及一种提高人脸比对性能的视频图像中人脸图片截取方法. 背景技术: 人脸图像比对需要对人脸图像提取特征数据,用于人脸对比的人脸特征提取,主要是对经人脸检测过程截取到的视频图 ...

  3. 两种找频繁项集的方法

    两种找频繁项集的方法 Apariori算法:主要通过限制候选产生发现频繁项集 使用的是频繁项集的先验原理 是一种称为逐层搜索的迭代方法,其中k项集用于搜索(k+1)项集 使用步骤: 1.扫描数据库,累 ...

  4. java视频压缩 lz4_一种视频序列帧的压缩方法、解压方法及装置与流程

    技术特征: 1.一种视频序列帧的压缩方法,其特征在于,包括: 在视频帧数据压缩时,对解析到的第一帧视频帧数据使用lz4算法进行压缩并保存至视频文件中: 对之后解析到的每一帧视频帧数据都与之前一帧视频帧 ...

  5. 电脑录屏工具_一分钟教你学会两种电脑录屏的方法,以后别再说不知道了

    相信大家用电脑都会截图,但有时候需要用到录屏,这就难倒了很多人.那么如何在电脑是录屏呢?下面就来教你学会两种电脑录屏的方法,以后别再说不知道了. 阅读引导: •阅读完本文预计需要2分钟时间. •本文是 ...

  6. 分分钟实现梦想 —— 两种快速打造App的方法

    分分钟实现梦想 -- 两种快速打造App的方法 几年前,做App还是土豪和移动开发者的专利.移动开发者使用Java或者C++这类开发工具,将一行行代码变成可以被手指轻松触控的应用.土豪们花钱雇佣这些移 ...

  7. 海康大华网络摄像头高起播低延时RTSP网页无插件流媒体专用播放器EasyPlayer-RTSP之GDI和D3D两种视频渲染方式的区别介绍

    GDI和D3D两种视频渲染方式的区别 EasyPlayer-RTSP windows播放器支持D3D和GDI两种渲染方式. D3D支持格式如下: DISPLAY_FORMAT_YV12 DISPLAY ...

  8. android内存池,两种常见的内存管理方法:堆和内存池

    描述 本文导读 在程序运行过程中,可能产生一些数据,例如,串口接收的数据,ADC采集的数据.若需将数据存储在内存中,以便进一步运算.处理,则应为其分配合适的内存空间,数据处理完毕后,再释放相应的内存空 ...

  9. 两种 js下载文件的方法(转)

    2019独角兽企业重金招聘Python工程师标准>>> 两种 js下载文件的方法(转) functionDownURL(strRemoteURL, strLocalURL){try{ ...

最新文章

  1. 为了使界面组件更圆滑,Swing,且跨系统
  2. Angular页面调试一个有用的小技巧 - normalizeDebugBindingName和normalizeDebugBindingValue - [object Object]
  3. 最短路径——dj+floyd+spfa(hdu2544)
  4. 【Java】Int类型逻辑运算符的详细描述---含代码
  5. 使用ORL人脸库,通过GRNN网络和HOG特征提取的人脸识别算法matlab仿真
  6. 机房巡检知识点(一)
  7. 记一次在广州看牙医经历
  8. idea插件开发可能出现的问题
  9. matlab 平滑曲线连接_MATLAB数字图像处理-识别广告牌上的文字
  10. Pdf2cad v12(顶级pdf转cad软件)官方正式版V12.2020.12 | pdf转cad软件中文版下载 | 比pdf2cadv9更强
  11. 台式计算机windows7系统怎么做,台式电脑怎么在线一键重装win7操作系统
  12. 浅聊智能推荐下的人物画像
  13. OpenCV判断图片是否是黑白图片
  14. spark-streaming 编程(六)mapwithState
  15. 商城系统选择技巧归纳
  16. 打印机服务器ip修改,打印机服务器ip设置
  17. ios 根据日期知道周几_iOS 获取当前日期是周几
  18. getElementsByTagName的用法
  19. Docker镜像讲解,教你如何自制并上传一个镜像
  20. Android Java 网络 OS等笔试题 -- 全

热门文章

  1. php jquery grid,jQuery Grid
  2. 在python语言中下列是二进制整数_Python从菜鸟到高手(5):数字
  3. 楼层平面放线及标高实测记录_没去过工地?没有施工经验?市政工程施工测量放线方法总结!...
  4. cnn卷积中padding作用
  5. latex插入表格_如何将word表格变成LaTeX代码?
  6. php 获取html中图片不显示,HTML中img标签src属性用PHP设置后不显示
  7. Tire 模板(建议收藏)
  8. (c语言)和与积的运算第三篇
  9. Android布局管理器-使用TableLayout表格布局管理器实现简单的用户登录页面
  10. [论文翻译]Pedestrian Alignment Network for Large-scale Person Re-Identification