摄像头预览正常,在点击“退出按钮”,或者关闭运行窗体后,下面的编译器输出栏弹出一堆警告,如下:
*** 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是一个流行的开源跨平台应用程序开发框架,它提供了丰富的图形用户界面(GUI)工具和功能,...
在QT中,使用QCamera的`start()`方法启动摄像头,而在OpenCV中,通过`cv::VideoCapture`的构造函数指定设备ID(通常为0)来打开默认摄像头: ```cpp cv::VideoCapture cap(0); if (!cap.isOpened()) { // 错误...
Linux下用qt OpenCV采集摄像头视频并显示,绝对可以运行,不卡,窗口可任意拖动。参见http://blog.csdn.net/yanzi1225627/article/details/8768822
3. **安装OpenCV**: 你可以从OpenCV官网下载预编译的库或源代码自行编译。预编译库通常包含头文件和库文件,将其解压到一个方便的位置。为了在项目中使用OpenCV,需要将包含头文件的路径添加到Visual Studio的...
1. **安装 OpenCV**: - 双击安装文件,选择安装位置,例如:`C:\OpenCV`。 2. **配置环境变量**: - 在系统环境变量中,找到 `PATH`,添加 `C:\OpenCV\opencv\build\x86\vc11\bin`。 #### 六、OpenCV 工程属性...
- **配置OpenCV**: - 添加OpenCV库到项目中,通常通过设置项目的配置文件(`.pro`文件)来包含OpenCV的头文件路径和库路径。 - 可能需要手动添加OpenCV的lib路径到项目属性中。 #### 4.2 开发注意事项 - **依赖...
标题与描述均聚焦于“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... vvvv windows 环境...
在本项目中,我们主要探讨如何使用Qt与OpenCV库结合来实现一个简单的屏幕录制功能。Qt是一个跨平台的应用程序开发框架,而OpenCV则是一个强大的计算机视觉库,两者结合可以构建高效、灵活的视频处理应用。以下是这个...
标题“vs2010+QT5.0.1+opencv2.4.3”指的是一个集成开发环境的配置教程,其中涉及到微软的Visual Studio 2010(VS2010)、Qt 5.0.1 GUI库以及OpenCV 2.4.3计算机视觉库。这个项目可能是为了在Windows平台上创建一个...
C++基于OpenCV+Qt的人脸识别考勤系统-毕业设计+源代码+文档说明.zipC++基于OpenCV+Qt的人脸识别考勤系统-毕业设计+源代码+文档说明.zipC++基于OpenCV+Qt的人脸识别考勤系统-毕业设计+源代码+文档说明.zipC++基于...
在IT领域,构建一个基于Qt、VLCQt、OpenCV和RTSP的截图应用是一项常见的任务,这四个组件各自承担着不同的职责。让我们逐一解析它们的功能及其在项目中的作用。 **Qt**: Qt是一个跨平台的应用程序开发框架,由Qt...
Qt+opencv 显示摄像头至QLabel(通过定时器实现),讲解见博客 https://blog.csdn.net/wang_chao118/article/details/126027849?spm=1001.2014.3001.5502
在本项目中,我们主要探讨如何使用OpenCV库与Qt框架结合Visual Studio(VS)来构建一个摄像头视频显示和处理的图形用户界面(GUI)。OpenCV是一个强大的计算机视觉库,而Qt是流行的跨平台GUI库,Visual Studio则作为...
在本项目"人脸识别+基于Linux+OpenCV"中,我们将在Qt开发环境中实现这一功能。 首先,Qt是一个跨平台的应用程序开发框架,广泛用于创建图形用户界面(GUI)和非GUI应用程序。它提供了丰富的API,使得开发者可以轻松...
3. **整合Qt与OpenCV**:将Qt的图形界面与OpenCV的视频处理能力结合,通常涉及到以下步骤: - 初始化VideoCapture对象,指定视频文件路径。 - 在Qt的定时器事件或槽函数中,调用VideoCapture的read()方法获取当前...
在本文中,我们将深入探讨如何使用QT和OpenCV库创建一个基本的摄像头采集程序。首先,让我们了解一下这两个关键工具。 **QT** 是一种跨平台的C++开发框架,广泛用于构建用户界面和应用程序。它提供了丰富的图形用户...
在Linux系统中,结合Qt 4.7和OpenCV 2.31,开发者可以创建一个功能丰富的视频采集和显示应用程序。"linux+qt4.7+opencv2.31的基于v4l2驱动的tiny6410视频采集显示"这个项目,就是这样一个例子,它特别针对了tiny6410...