QT creator中使用opencv采集摄像头信息
之前在QT creator上成功编译了opencv,由于课题需要,需要采集摄像头的信息。故搜集了网上的一些资料,依葫芦画瓢的照着做了一下,终于简单的成功采集了信息。
打开QTcreator,新建一个widget工程。
在界面上放两个label 分别用来显示摄像头采集到的数据和照的照片。
在widget.h中的源代码如下:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QImage>
#include <QTimer> //设置采集数据的间隔时间
#include <highgui.h>
#include <cv.h>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private slots:
void openCamara(); //打开时摄像头
void readFarme(); //读取当前帧信息
void closeCamara();//关闭摄像头
void takingPictures(); //拍照
private:
Ui::Widget *ui;
QTimer *timer;
QImage *imag;
CvCapture *cam;//视频获取结构,用来作为视频获取函数的一个参数
IplImage *frame;//申请IplImage类型指针,就是申请内存空间来存放每一帧图像
};
#endif // WIDGET_H
在widget.cpp中的源文件如下:
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
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->close,SIGNAL(clicked()),this,SLOT(closeCamara()));
}
Widget::~Widget()
{
delete ui;
}
void Widget::openCamara()
{
cam=cvCreateCameraCapture(0);
timer->start(33);
}
void Widget::readFarme()
{
frame=cvQueryFrame(cam);
// QImage imag((const uchar*)frame->imageData,frame->width,frame->height,QImage::Format_RGB888);
QImage imag=QImage((const uchar*)frame->imageData,frame->width,frame->height,QImage::Format_RGB888).rgbSwapped();
ui->label->setPixmap(QPixmap::fromImage(imag));
}
void Widget::closeCamara()
{
timer->stop();
cvReleaseCapture(&cam);//释放内存;
}
void Widget::takingPictures()
{
frame = cvQueryFrame(cam);
QImage imag((const uchar*)frame->imageData, frame->width, frame->height, QImage::Format_RGB888);
ui->label_2->setPixmap(QPixmap::fromImage(imag));
}
好了,全部代码都OK了。
(大致思路是:点击打开摄像头按钮,则开启摄像头,并设置一个定时器,每隔一段时间捕获摄像头摄取到的帧,将其转换成QImage,最最后在QLabel控件上显示)
QT creator中使用opencv采集摄像头信息的更多相关文章
- Qt creator中配置opencv win7 64bit
配置方法的原文来自https://www.librehat.com/qt-5-2-vs2012-opencv-2-4-7-dev-environment-setup-tutorial/. 补充,在张静 ...
- QT creator中使用opencv
最近要用到opencv做图像方面的东西,网上很多是用VS加opencv,但自己对VS不怎么喜欢,想用QT Creator.在网上搜索了很多资料,终于花了一天的时间,在QT Creator上能使用ope ...
- 在Qt Creator中添加OpenCV库
在项目的pro文件中添加如下代码:INCLUDEPATH += D:/opencv/build/include win32:CONFIG(debug, debug|release): {LIBS += ...
- Qt Creator中,include路径包含过程(或如何找到对应的头文件)
Qt Creator中,include路径包含过程(或如何找到对应的头文件) 利用Qt Creator开发程序时,需要包含利用#include来添加头文件. 大家都知道,#include <&g ...
- Qt Creator中的3D绘图及动画教程(参照NeHe)
Qt Creator中的3D绘图及动画教程(参照NeHe) http://blog.csdn.net/cly116/article/details/47184729 刚刚学习了Qt Creator,发 ...
- Windows XP 下如何使用Qt Creator中的Git版本控制功能
原文地址:http://www.qtcn.org/bbs/simple/?t16960.html Qt Creator是针对Qt应用开发平台专门设计的IDE开发工具,集成了很多功能,分别有win ...
- qt creator中使用qwt插件
前提:我用mingw编译的qwt. 将qwt插件集成到qt designer非常easy.仅仅要把qwt编译的qwt_designer_plugin.dll复制到C:\Qt\Qt5.3.1\5.3\m ...
- Qt在VS2013或Qt Creator 中的控制台输出方式设置
首先值得注意的是:在写程序的时候,项目保存路径不要涉及到中文,否则容易出错! 一.Qt在VS2013中的控制台输出方式: 注意:这里是而不是Qt Application. 然后直接点击finish即可 ...
- qt creator中编辑Makefile的设置
在qt creator中编辑Makefile时的Tab键总是不能识别,需要这样设置
随机推荐
- Xamarin.Forms-VS安装调试错误
编译android项目报错检查android sdk 是否安装成功后发现报错如下图: 点击->工具->android sdk manager 报错 错误原因没有找到 android ...
- 【android】adb连接几个常见问题(遇到再新增)
不知道为什么,每次连接手机,都提示 adb server is out of date,偶尔也会提示not found 每次去百度,都好多方法---终于有一种方法非常靠谱,遂,记录之--- 问题一:o ...
- 护肤品总结 Skin Care (1)
很久没有更博了,最近过年在家,就写些生活上面的总结吧- 从护肤品开始,接下来陆陆续续会有化妆品,北美生活购物等. 因为是学生党,所以此帖中的东西基本都是价钱适中.因为经常买买买,所以用的好的坏的都会在 ...
- UVA 195 Anagram
题意:求输入字符串的所有组合,按字典序输出! 解法:使用枚举(枚举前先找出最字符串的最小字典序)枚举时加上枚举生成条件! #include <iostream> #include < ...
- MyEclipse8.6下的svn插件安装
myeclipse8.6的svn插件安装 下载site-1.6.18.zip 在myeclipse8.6的MyEclipse8.6的安装目录D:/install/MyEclipse8.6/Genuit ...
- 《Programming Massively Parallel Processors》Chapter5 习题解答
自己做的部分习题解答,因为时间关系,有些马虎,也不全面,欢迎探讨或指出错误 5.1 Consider the matrixaddition in Exercise 3.1. Can one use s ...
- openwrt上网配置的一些理解(四)
这次要解决的问题是3g上网和wan口上往可以随意切换,当然能够叠加也是好事,不过这不是我关心的.下面还是修改3个文件network,firewall,multiwan.首先在network中加入界面配 ...
- Win2 Socket(套接字)相关 API
Socket(套接字) 作者信息 肖进 单位:南京中萃食品有限公司 资讯部 邮箱:xiaoj@njb.swirebev.com 电话:025-58642091 与socket有关的一些函数介绍 1.读 ...
- QT程序启动界面的使用
当程序的初始化工作比较多,程序可能启动较长时间后,窗口才会显示出来,用户没准会抱怨程序响应的慢. 为了改善用户体验,最好在程序初始化这段时间显示logo,或者其他信息提示用户程序已启动.QT提供了QS ...
- 解决svn状态图标不显示的办法
SVN是一款出色的代码版本控制工具,大部分开发者都在使用.由于前不久刚做了系统,所以要重装一下SVN,结果就出了问题,问题就是,不管是文件处于什么状态他的提示图标都不显示,这就太不给力了吧.通过搜寻, ...