qt界面上显示摄像头视频
来源:互联网 发布:杭州师范大学 知乎 编辑:程序博客网 时间:2024/06/05 12:44
对于摄像头在qt界面上显示,我采用了一种比较偷懒的方法。利用天嵌资料上的usb_camera的源码,结合自己做的qt界面,将两个进程同时运行,就可以达到摄像头视频在qt界面上显示的效果。而在退出这两个进程的时候,要先退出摄像头显示进程,然后再退出qt界面的进程,否则摄像头显示的图像会出现卡屏的现象。在qt界面进程里退出摄像头显示进程,可以在C++程序中调用shell命令,使用system("killall -9 进程名")即可。
为实现实时抓拍的功能,我在网上参考了这么一段代码:
#include<QtCore/QString>#include<QtGui>#include<QtGui/QPixmap>int main(int argc,char* argv[]){ QApplication app(argc,argv); QPixmap pixmap; pixmap=pixmap.grabWindow(QApplication::desktop()->winId(),10,20,320,240); QString pic; pic="picture.jpg"; pixmap.save(pic, "JPG"); return app.exec(); }
要使用QApplication::desktop()->winId(),就需要包含#include <QDesktopWidget>头文件,这个例程已经有#include<QtGui>头文件,所以编译不会出错,但是将这段代码移植到自己的工程中,因为没有包含这个头文件,会报错。
这在PC机生可以实现截屏的功能,但是交叉编译移植到开发板之后,一直打印这种错误:QJpegHandler: unable to write image of format 7。后来发现是在ARM板上不支持JPG的保存格式,于是将图片格式换成PNG格式保存就OK了。
为了能连续抓拍保存不同的图片文件名,就使用如下代码实现:
//int转换成QString QString pic; QString num = QString::number(pic_i++, 10);//拼接文件名 pic="picture"+num+".png"; pixmap.save(pic, "PNG");
其中pic_i是在camera类里面定义的int型私有变量。
今天西西麻麻要来了,昨晚因为兴奋,有点失眠,此刻困死。外面下雨了,希望她不要被淋湿了……
0 0
- qt界面上显示摄像头视频
- QT界面与视频同时显示在屏幕上
- V4L搞定 +QT显示摄像头视频
- Qt+opencv多摄像头视频显示
- VS2008+MFC+opencv 显示视频图像/捕捉摄像头视频界面
- qt界面叠加视频OSD双层显示
- Qt摄像头视频采集
- Qt 界面上控制中英文显示切换
- 开发板上QT界面中文字体显示
- 手机摄像头图像在电脑上显示-实现视频监控
- dm8168下qt界面与视频的同步显示
- dm8168下qt界面与视频的同步显示
- Qt开发:Qt+OpenCV在(Linux平台)PC上采集摄像头视频(源码奉送)
- OpenCV 获取摄像头并显示摄像头视频
- OpenCV 获取摄像头并显示摄像头视频
- OpenCV 获取摄像头并显示摄像头视频
- OpenCV 获取摄像头并显示摄像头视频
- OpenCV 获取摄像头并显示摄像头视频
- 优秀产品经理指南
- ios后台推送那点事
- leetcode: Set Matrix Zeroes
- 前端
- 黑马程序员 Java面向对象——集合框架(Map)
- qt界面上显示摄像头视频
- ios谷歌地图 反编码接口
- 使用GLSL实现对光照的模拟(一)
- Effective C++——》条款24:若所有参数皆需类型转化,请谓词函数采用non-member函数
- 经典排序之分配排序
- C语言中sscanf的用法
- 黑马程序员 Java面向对象——集合框架总结
- performSelector延时调用导致的内存泄露
- Linux驱动发开,usb设备的probe全过程