vs2015 + opencv3.3 + mfc读取摄像头显示在图片控件Picture Control

要开始做一个行人检测的小项目,首先读取出摄像头显示,参考了这位博主的教程:http : //blog.csdn.net/qq_32171677/article/details/61190719,可能是版本问题无法读出摄像头显示在Picture Control控件中,因此做了一些改进,改变了获取摄像头的方式,步骤如下:

如图1所示,配置环境为VS2015 + OpenCV3.3,按照以上博主的教程搭建图形界面,最后程序正常执行,摄像头旁边的导致灯也亮了,但是图形控件中并没有显示出来摄像头的图像。

2,新建一个Mat型变量和VideoCapture变量

Mat g_srcImage;
VideoCapture Capture(0);

3,修改打开摄像头按钮事件相应函数,将获取摄像头一帧数据的函数改为:Capture >> g_srcImage;再将Mat型的g_srcImage改为IplImage类型变量,修改后的函数如下:

 // TODO:在此添加控件通知处理程序代码   namedWindow(“显示摄像头”);
    捕捉>> g_srcImage;
    imshow(“显示摄像头”,g_srcImage);
    frame =&IplImage(g_srcImage);
pDC = GetDlgItem(IDC_PIC_STATIC) - > GetDC(); // GetDlgItem(IDC_PIC_STATIC)意思是获取显示控件的句柄(句柄就是指针),获取显示控件的DC  GetDlgItem(IDC_PIC_STATIC) - > GetClientRect(&rect);
hDC = pDC-> GetSafeHdc(); //获取显示控件的句柄
                CvvImage m_CvvImage;
    m_CvvImage.CopyOf(frame,1); //复制该帧图像       m_CvvImage.DrawToHDC(hDC,&rect); //显示到设备的矩形框内   ReleaseDC(PDC);   SetTimer(1,25,NULL); //定时器,定时时间和帧率一致

4,同时,将定时器函数做出同样的更改:

 // TODO:在此添加消息处理程序代码和/或调用默认值捕捉>> g_srcImage;imshow(“显示摄像头”,g_srcImage);
pDC = GetDlgItem(IDC_PIC_STATIC) - > GetDC(); //获取显示控件的DC()
函数GetDlgItem(IDC_PIC_STATIC) - > GetClientRect(&RECT);
hDC = pDC-> GetSafeHdc(); //获取显示控件的句柄
frame =&IplImage(g_srcImage);CvvImage m_CvvImage;m_CvvImage.CopyOf(frame,1); //复制该帧图像
m_CvvImage.DrawToHDC(hDC,&rect); //显示到设备的矩形框内
CDialogEx ::的OnTimer(nIDEvent);

5,关闭摄像头只是简单的关闭定时器

 ReleaseDC(PDC);KillTimer函数(1);

6,下载工程连接:https://download.csdn.net/download/ai_lz/10284887

有问题请留言,转载请声明http://blog.csdn.net/ai_Lz/article/details/79545668。

vs2015+opencv3.2+mfc读取摄像头显示在图片控件Picture Control相关推荐

  1. MFC动态改变图形控件picture control位置

    前言 有时候用pictrue控件显示图片的时候,如果设置图片大小适应控件大小可能不是很合理,但如果不设置,控件可能会便宜你摆放的原位置,这时候需要动态设置图形控件位置 正文 void CDlog4:: ...

  2. (一)MFC读取并显示一幅位图图像,并获取鼠标点击位置的像素坐标和灰度值

    题目是老师布置的一道作业题,要求用C或C++完成,但不能用VTK/Opencv等软件包,经过很多摸索之后实现了该功能,后续可能还有其他功能要实现,所以先写一篇博客记录下,一方面是方便自己以后使用,另一 ...

  3. mfc调取摄像头显示并截图_利用MFC来显示摄像头并拍照

    今天是第一次尝试写一个MFC程序.水了一天,终于写好了.总结一下. 一.配置环境 调用摄像头是通过opencv库进行的,所以首先要配置好opencv 的环境.这个可以通过这个链接进行配置. https ...

  4. (一)MFC读取并显示一幅位图图像,并获取鼠标点击位置的像素坐标和灰度值(接上篇博客)

    上篇博客简要介绍了如何利用MFC读取并显示一幅位图图像,并获取鼠标点击位置的像素坐标和灰度值信息,主要包含了对话框的创建和添加程序,代码也在上一页中给了大家,但是并没有详细说明功能,所以在这一节当中主 ...

  5. 项目MFC总结(二)——读取CSV文件将数据转化为图像显示在图片控件

    功能 点击[打开文件]按钮,选择文件打开,将数据处理为图像(默认处理第10帧开始),然后将图像显示在图片控件. 注:整个项目有关图像处理的操作基本用OpenCV实现. 读取文件实现 1.添加按钮控件 ...

  6. Qt 读取并且显示SVG图片

    SVG图片是一种可缩放的矢量图片,是一个开放的图片标准.是由xml格式定义一种文件. svg图片文件具有以下优势: 基于xml语言 可在图像质量不下降的情况下被放大 比JPEG和PNG格式的文件要小很 ...

  7. C语言用句柄显示bmp图片,VC编程之VC MFC界面上显示BMP图片

    本文主要向大家介绍了VC编程之VC MFC界面上显示BMP图片,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助. 1.通过点击界面浏览按钮选择BMP图像文件. 点击浏览按钮打开文件对话框选择 ...

  8. MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片

    最近有同学问我如何实现MFC基于对话框在图片控件中加载图片?其实使用MFC显示图片的方法各种各样,但是还是有些同学不知道怎样显示.以前在<数字图像处理>课程中完成的软件都是基于单文档的程序 ...

  9. VS2013 MFC 直接将 OpenCV2.0/3.0 库中的 Mat 结构的图像传递到 Picture Control(图片控件)

    接上文 VS2013 MFC + OpenCV3.0 打开图片: 既然我们已经从 OpenCV1.0 走到了 OpenCV2.0 乃至更高,又何苦在写基于 MFC 的图像处理程序时,又回到 OpenC ...

最新文章

  1. A - Expanding Rods POJ - 1905(二分)
  2. 程序猿悲喜录:魔都,想说爱你不容易
  3. 设计模式 之 建造者
  4. [ZJOI2011]礼物
  5. linux识别fat16还是32,FAT16 、FAT32 、NTFS、LINUX区别.doc
  6. PreparedStatement批量处理的一个Framework(原创)
  7. ceph Luminous版手动安装零散记录
  8. Bleu:此'蓝'非彼蓝
  9. 弱键(Weak Key, ACM/ICPC Seoul 2004, UVa1618)
  10. 小说题目和章节题目还没想好
  11. meta分析stata教程
  12. 美团监控系统mysql_美团MySQL数据库巡检系统的设计与应用
  13. (5)将一个数组中的值按逆序重新存放。例如原来顺序为8,6,5,4,1。要求改为1,4,5,6,8
  14. linux ssh权限设置,linux 让ssh只允许指定的用户登录的权限设置
  15. 案例:自动复制黏贴bat
  16. matlab求解微分代数方程组,微分代数方程(DAE)的Matlab 解法.PDF
  17. 【3D服装级设计/游戏动画引擎】Marvelous Designer软件
  18. C++实现中文大写与阿拉伯数字的相互转换(类封装)
  19. Java: Integer比较127, 128
  20. ATX框架下 app的webview操作

热门文章

  1. 主键索引和唯一索引的区别
  2. 深入大数据平台心脏:饿了么调度系统全解
  3. 本周AI热点回顾:百度自动驾驶估值400亿美金;新型嵌入式无电容DRAM为AI而生...
  4. php怎么插入画笔,新手必看:Photoshop笔刷画笔工具基本使用教程
  5. 送11个机械键盘鼠标套装,牛逼玩家必备的撸码神器
  6. 设计师自学其实也没那么难
  7. 如何解决 img 标签四周出现白边的问题
  8. 协变与逆变的简单理解(C#)
  9. rtklib——PPP Learning
  10. 【青书学堂】计算机应用基础(高起专) 第一学期 作业