在创建MFC,获取摄像头数据在picture控件中显示,虽能正常显示,但在运行3~5分钟或者更短的时间,会使MFC卡住,或者软件当机。

经测试和查询,主要产生卡死的原因是

CRect myrect;

被定义成全局变量,可能是由于多次复制帧导致内存占满,从而导致MFC卡死。

解决方案:

将CRect myrect;定义成私有变量,将picture控件的显示放在一个单独的函数里执行,不占用整个MFC的内存。因此作者在这里将定时器函数作为修改如下:

CRect myrect;

CvvImage myCvvImage; 
switch(nIDEvent)   
{

case 1://定时器1执行流程

pDC = GetDlgItem(picture concrol)->GetDC();//GetDlgItem(IDC_PIC_STATIC)意思为获取显示控件的句柄(句柄就是指针),获取显示控件的DC  
GetDlgItem(picture concrol)->GetClientRect(myrect); 
hDC = pDC->GetSafeHdc();//获取显示控件的句柄

frame = cvQueryFrame(Capture); //图片读取路径可以自己设定   
myCvvImage.CopyOf(frame, 1); //复制该帧图像     
myCvvImage.DrawToHDC(hDC, &rect); //显示到设备的矩形框内  
ReleaseDC(pDC);
CDialogEx::OnTimer(nIDEvent);

break;

default:   
        break;

}

执行之后,经过10分钟以上的测试,无卡死现象,OK,问题解决。

MFC使摄像头录像在picture中显示时常出现崩溃问题相关推荐

  1. 使设备管理器在Windows中显示不存在的设备

    在这篇文章中,我们将看到如何使内置的设备管理器在Windows 10/8/7中显示不存在的设备.  不存在的设备是那些曾经安装过但现在不再连接到计算机的旧的,未使用的,以前的隐藏设备. 在Window ...

  2. 基于MFC海康威视摄像头Demo(含抓图显示|不含云台)

    这一阵一直在做海康威视的摄像头的调试工作,根据官方给的Demo,这里做了一些修改,删掉了云台的功能,添加了显示抓取图片的模块,这里话不多说,先上程序运行结果: 如果你需要的是这样的程序,那么你可以下载 ...

  3. fighting(3)从机tr_prefix设置,并使之可以于rviz中显示

    要控制多个机器人,必然要于rviz上显示各机器人,需要设置tf_prefix,使得地图信息可以传递给各机器人的odom 1.从机设置 1.1 tf_prefix设置robot_description及 ...

  4. 如何在matlab里输入复杂公式_[转载]如何在Matlab绘制的图形中显示复杂公式

    Matlab文本的Interpreter属性使我们能在图形中显示一个较为复杂的公式,例如在公式中除了有希腊字母外,还有分号.根号等数学符号. 当键入:>> set(text,'Interp ...

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

    vs2015 + opencv3.3 + mfc读取摄像头显示在图片控件Picture Control 要开始做一个行人检测的小项目,首先读取出摄像头显示,参考了这位博主的教程:http : //bl ...

  6. 在MFC程序中显示 JPG/GIF图像

    如果你是一个使用VB编程的程序员,要在程序中显示JPG或者GIF图像简直易如反掌,将图像控件拖到Form中,分分钟即可搞掂.但是C++程序员要显  示同样的图形却没有那么轻松,那么是不是要自己编写JP ...

  7. 在vc或mfc中显示IplImage的方法

    平常使用Open CV时总是跳出一个个窗口,很难将项目进行系统集成,特别是在MFC等Windows环境中加载显示Open CV中的IplImage图像: /********************** ...

  8. 【MFC】动态加载Picture Control控件中的图片

    [MFC]动态加载Picture Control控件中的图片 前言 方法1:CBrush 方法2:SetBitmap 参考链接 方法3:重写MyPictureControl 前言 在MFC窗体中,我们 ...

  9. VC MFC程序,在About对话框中获取并显示程序的版本号

    =================================================本文为HeYuanHui原作 转载必须确保本文完整并完整保留原作者信息及本文原始链接! NN:     ...

最新文章

  1. 如何写一篇好的技术博客
  2. 步步为营 .NET 设计模式学习笔记 六、Adapter(适配器模式)
  3. Java Spring里getBean方法的实现
  4. 【转】使用websocket-sharp来创建c#版本的websocket服务
  5. Oracle从零开始5——数据库定义操作
  6. EditPlus 使用技巧集萃(转)
  7. ubuntu物理机上搭建Kubernetes集群 -- 准备
  8. 蓝桥杯2020年第十一届C++省赛第六题-成绩统计
  9. 我与分布式机器学习的故事
  10. 还贷的那些事VI——自由贷的设想
  11. 原型设计工具Balsamiq Mockups
  12. PID解释与离散化算法公式
  13. nes 红白机模拟器 第1篇
  14. Java_String_Arrays_Character_BigDecimal_Calendar_Math_System
  15. 经典文献阅读之--PL-SLAM(点线SLAM)
  16. mysql管理工具10.1,NavicatforMySQL10
  17. 【Bug】steam双方都是国区 礼物无法入库问题
  18. vue ElementUI实现的记事日历
  19. 2020年IEEE Fellow刚刚揭榜!超70名华人入选
  20. 标准化窄带物联网商用网络 在福州试点落地

热门文章

  1. Android Studio Gradle构建报错,Error:Execution failed for task ':app:mergeDebugResources'.
  2. “华为云杯”2019人工智能创新应用大赛(图像分类比赛)总结记录
  3. 云安全:云计算的安全风险、模型和策略
  4. 2021腾讯内推面试
  5. 简单使用MenuItem特性
  6. 正式开展免费帮助开发者提交APP到市场的服务
  7. POJ - 2564 Edit Step Ladders
  8. BugKu 一枝独秀 [MISC]
  9. wxParse多数据循环使用方法
  10. “苹果吃饱”的平板市场,新老玩家的翻盘之争