资源简介
该工程可实现ubuntu下视频的采集显示,并可以控制拍照
所用环境 ubuntu12.04+Qtcreator2.7.1+Qtlib4.8.4+opencv2.4.5
拍照文件保存路径为/home/administrator/
保存名称image.bmp
代码片段和文件信息
#include “widget.h“
#include “ui_camaraget.h“
#include “camaraget.h“
# include “rec.h“
camaraGet::camaraGet(QWidget *parent) :
QWidget(parent)
ui(new Ui::camaraGet)
{
ui->setupUi(this);
cam = NULL;
timer = new QTimer(this);
imag = new QImage(); // 初始化
/*信号和槽*/
connect(timer SIGNAL(timeout()) this SLOT(readFarme())); // 时间到,读取当前摄像头信息
connect(ui->open SIGNAL(clicked()) this SLOT(openCamara()));
connect(ui->pic SIGNAL(clicked()) this SLOT(takingPictures()));
connect(ui->closeCam SIGNAL(clicked()) this SLOT(closeCamara()));
}
/******************************
********* 打开摄像头 ***********
*******************************/
void camaraGet::openCamara()
{
cam = cvCreateCameraCapture(-1);//打开摄像头,从摄像头中获取视频
timer->start(33); // 开始计时,超时则发出timeout()信号
}
/*********************************
********* 读取摄像头信息 ***********
**********************************/
void camaraGet::readFarme()
{
frame = cvQueryframe(cam);// 从摄像头中抓取并返回每一帧
// 将抓取到的帧,转换为QImage格式。QImage::Format_RGB888不同的摄像头用不同的格式。
// QImage image((const uchar*)frame->imageData frame->width frame->height QImage::Format_RGB888);
QImage image = QImage((const uchar*)frame->imageData frame->width frame->height QImage::Format_RGB888).rgbSwapped();
ui->label->setPixmap(QPixmap::fromImage(image)); // 将图片显示到label上
//
}
/*************************
********* 拍照 ***********
**************************/
void camaraGet::takingPictures()
{
frame1 = cvCloneImage(frame);// 从摄像头中抓取并返回每一帧
frame_temp =cvCloneImage(frame1);
// 将抓取到的帧,转换为QImage格式。QImage::Format_RGB888不同的摄像头用不同的格式。
QImage image = QImage((const uchar*)frame->imageData frame->width frame->height QImage::Format_RGB888).rgbSwapped();
ui->label_2->setPixmap(QPixmap::fromImage(image)); // 将图片显示到label上
image.save(“/home/administrator/image.bmp“);
}
/*******************************
***关闭摄像头,释放资源,必须释放***
********************************/
void camaraGet::closeCamara()
{
timer->stop(); // 停止读取数据。
cvReleaseCapture(&cam);//释放内存;
exit(0);
}
camaraGet::~camaraGet()
{
delete ui;
}
相关资源
- 移动onenet 基于arduino IDE 的mqtt连接
- QT编写的局域网聊天工具仿飞秋
- ARM开发板QT编写的虚拟全键盘
- 虚拟机 ubuntu常用指令
- source.zip
- 基于Qt的多线程工具
- opencv300.props
- 数字信号处理库Aquila编译及使用说明
- Qt:利用ntp服务器获取网络时间
- 利用qt creator 实现的mp3的功能,有界面
- Qt实现周立功CAN
- OpenCV使用特殊颜色标记彩色图像轮廓
- qtwinmigrate-2.8_1-opensource
- 基于QT的换肤整体解决方案(QSkinst<
- Qt txt文件读写
- VS2015+opencv3.2+opencv contrib3.2+cmake3.8.2
- PyQt5快速开发与实践
- Kinect获取彩色图像并保存为jpg图片
- 如何用OpenCV训练自己的分类器.doc
- qt编写的浏览器程序源代码
- QTP完全卸载助手纯净-QTPCleanUninstalle
- opencv_calib3d310d.dll
- 利用OpenCV,通过SVM识别图像中图形链
- QTcpServer实现多客户端连接
- opencv2.4.11配置文件
- QT的TCP一个服务端连接多个客户端
- qt5音乐播放器源代码
- Qt图片浏览器
- Qt抽奖程序
- 基于QT的P2P共享文件系统
评论
共有 条评论