`
rys5851968
  • 浏览: 155774 次
社区版块
存档分类
最新评论

Linux+QT+OpenCv摄像头调试心得(3)---- glibc detected *** free(): invalid pointer: 0xafeff000

 
阅读更多

摄像头预览正常,在点击“退出按钮”,或者关闭运行窗体后,下面的编译器输出栏弹出一堆警告,如下:

*** glibc detected *** /home/yan/qt/Camera_Read_OpenCv_V1-build-desktop-Desktop_Qt_4_8_0_for_GCC__Qt_SDK____/Camera_Read_OpenCv_V1: free(): invalid pointer: 0xafeff000 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x6ebc2)[0x908bc2]
/lib/i386-linux-gnu/libc.so.6(+0x6f862)[0x909862]
/lib/i386-linux-gnu/libc.so.6(cfree+0x6d)[0x90c94d]
/usr/lib/libcxcore.so.2.1(_ZN2cv8fastFreeEPv+0x23)[0xe236a3]
/usr/lib/libcxcore.so.2.1(cvFree_+0x1c)[0xe23c2c]
/usr/lib/libcxcore.so.2.1(cvReleaseImageHeader+0x6a)[0xe5b7ba]
/usr/lib/libcxcore.so.2.1(cvReleaseImage+0x3f)[0xe5b8ff]
/home/yan/qt/Camera_Read_OpenCv_V1-build-desktop-Desktop_Qt_4_8_0_for_GCC__Qt_SDK____/Camera_Read_OpenCv_V1[0x804a679]
/home/yan/qt/Camera_Read_OpenCv_V1-build-desktop-Desktop_Qt_4_8_0_for_GCC__Qt_SDK____/Camera_Read_OpenCv_V1[0x804a1f3]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x8b3113]
/home/yan/qt/Camera_Read_OpenCv_V1-build-desktop-Desktop_Qt_4_8_0_for_GCC__Qt_SDK____/Camera_Read_OpenCv_V1[0x804a249]
======= Memory map: ========
00110000-003f1000 r-xp 00000000 08:01 557615 /home/yan/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtCore.so.4.8.0
003f1000-003f8000 r--p 002e0000 08:01 557615 /home/yan/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtCore.so.4.8.0
003f8000-003fb000 rw-p 002e7000 08:01 557615 /home/yan/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtCore.so.4.8.0
003fb000-00417000 r-xp 00000000 08:01 394171 /lib/i386-linux-gnu/libgcc_s.so.1
00417000-00418000 r--p 0001b000 08:01 394171 /lib/i386-linux-gnu/libgcc_s.so.1。。。。。。。。。。。。。。。等等很多

原因:在CameraWidget的析构函数里,释放指针的顺序不对,应该是cvReleaseCapture(&capture),然后再cvReleaseImage(&img);

备注:img = cvQueryFrame(capture)。 如果内存释放顺序颠倒了,就会出现上述警告!


分享到:
评论

相关推荐

    基于QT5的OpenCV摄像头视频采集并显示

    在本文中,我们将深入探讨如何使用QT5和OpenCV库结合进行摄像头视频采集与显示。首先,让我们了解这两个关键组件。 QT5是一个流行的开源跨平台应用程序开发框架,它提供了丰富的图形用户界面(GUI)工具和功能,...

    QT + OpenCV 打开摄像头。

    在QT中,使用QCamera的`start()`方法启动摄像头,而在OpenCV中,通过`cv::VideoCapture`的构造函数指定设备ID(通常为0)来打开默认摄像头: ```cpp cv::VideoCapture cap(0); if (!cap.isOpened()) { // 错误...

    Linux上Qt-OpenCV采集摄像头视频并显示

    Linux下用qt OpenCV采集摄像头视频并显示,绝对可以运行,不卡,窗口可任意拖动。参见http://blog.csdn.net/yanzi1225627/article/details/8768822

    VS2022+Qt 5.14+OpenCV环境搭建,亲测可用。

    3. **安装OpenCV**: 你可以从OpenCV官网下载预编译的库或源代码自行编译。预编译库通常包含头文件和库文件,将其解压到一个方便的位置。为了在项目中使用OpenCV,需要将包含头文件的路径添加到Visual Studio的...

    VS2012+QT5.2.0+opencv2.4.10配置教程

    1. **安装 OpenCV**: - 双击安装文件,选择安装位置,例如:`C:\OpenCV`。 2. **配置环境变量**: - 在系统环境变量中,找到 `PATH`,添加 `C:\OpenCV\opencv\build\x86\vc11\bin`。 #### 六、OpenCV 工程属性...

    WIN7 64位+VS2013+Qt5.5.0+opencv2.4

    - **配置OpenCV**: - 添加OpenCV库到项目中,通常通过设置项目的配置文件(`.pro`文件)来包含OpenCV的头文件路径和库路径。 - 可能需要手动添加OpenCV的lib路径到项目属性中。 #### 4.2 开发注意事项 - **依赖...

    linux +qt4.7+opencv2.2移植到tq2440开发板

    标题与描述均聚焦于“Linux + Qt4.7 + OpenCV2.2”移植至TQ2440开发板的过程,这一主题涉及到嵌入式系统开发中的几个关键环节,包括环境搭建、编译配置以及具体操作步骤。下面将详细阐述这一过程中涉及的关键知识点...

    windows 环境下使用 cmake+mingw-w64+qt5.10 编译 opencv3.4...

    windows 环境下使用 cmake+mingw-w64+qt5.10 编译 opencv3.4... windows 环境下使用 cmake+mingw-w64+qt5.10 编译 opencv3.4... windows 环境下使用 cmake+mingw-w64+qt5.10 编译 opencv3.4... vvvv windows 环境...

    Qt+OpenCv制作简单录屏.rar

    在本项目中,我们主要探讨如何使用Qt与OpenCV库结合来实现一个简单的屏幕录制功能。Qt是一个跨平台的应用程序开发框架,而OpenCV则是一个强大的计算机视觉库,两者结合可以构建高效、灵活的视频处理应用。以下是这个...

    vs2010+QT5.0.1+opencv2.4.3

    标题“vs2010+QT5.0.1+opencv2.4.3”指的是一个集成开发环境的配置教程,其中涉及到微软的Visual Studio 2010(VS2010)、Qt 5.0.1 GUI库以及OpenCV 2.4.3计算机视觉库。这个项目可能是为了在Windows平台上创建一个...

    C++基于OpenCV+Qt的人脸识别考勤系统-毕业设计+源代码+文档说明.zip

    C++基于OpenCV+Qt的人脸识别考勤系统-毕业设计+源代码+文档说明.zipC++基于OpenCV+Qt的人脸识别考勤系统-毕业设计+源代码+文档说明.zipC++基于OpenCV+Qt的人脸识别考勤系统-毕业设计+源代码+文档说明.zipC++基于...

    qt+vlcqt+opencv+rtsp+截图

    在IT领域,构建一个基于Qt、VLCQt、OpenCV和RTSP的截图应用是一项常见的任务,这四个组件各自承担着不同的职责。让我们逐一解析它们的功能及其在项目中的作用。 **Qt**: Qt是一个跨平台的应用程序开发框架,由Qt...

    Qt+opencv 显示摄像头至QLabel(通过定时器实现)

    Qt+opencv 显示摄像头至QLabel(通过定时器实现),讲解见博客 https://blog.csdn.net/wang_chao118/article/details/126027849?spm=1001.2014.3001.5502

    opencv+qt+vs的摄像头视频显示和处理GUI界面设计代码

    在本项目中,我们主要探讨如何使用OpenCV库与Qt框架结合Visual Studio(VS)来构建一个摄像头视频显示和处理的图形用户界面(GUI)。OpenCV是一个强大的计算机视觉库,而Qt是流行的跨平台GUI库,Visual Studio则作为...

    人脸识别+基于linux+opencv.rar_QT_QT人脸识别_Qt开发环境_linux opencv

    在本项目"人脸识别+基于Linux+OpenCV"中,我们将在Qt开发环境中实现这一功能。 首先,Qt是一个跨平台的应用程序开发框架,广泛用于创建图形用户界面(GUI)和非GUI应用程序。它提供了丰富的API,使得开发者可以轻松...

    qt+opencv视频播放

    3. **整合Qt与OpenCV**:将Qt的图形界面与OpenCV的视频处理能力结合,通常涉及到以下步骤: - 初始化VideoCapture对象,指定视频文件路径。 - 在Qt的定时器事件或槽函数中,调用VideoCapture的read()方法获取当前...

    基于QT+Opencv的摄像头采集程序

    在本文中,我们将深入探讨如何使用QT和OpenCV库创建一个基本的摄像头采集程序。首先,让我们了解一下这两个关键工具。 **QT** 是一种跨平台的C++开发框架,广泛用于构建用户界面和应用程序。它提供了丰富的图形用户...

    linux+qt4.7+opencv2.31的基于v4l2驱动的tiny6410视频采集显示

    在Linux系统中,结合Qt 4.7和OpenCV 2.31,开发者可以创建一个功能丰富的视频采集和显示应用程序。"linux+qt4.7+opencv2.31的基于v4l2驱动的tiny6410视频采集显示"这个项目,就是这样一个例子,它特别针对了tiny6410...

Global site tag (gtag.js) - Google Analytics