QT中利用opencv 代码进行摄像头编程
来源:互联网 发布:linux下载jdk1.8.0 编辑:程序博客网 时间:2024/04/29 03:54
http://mobile.51cto.com/symbian-271265.htm
http://blog.csdn.net/yang_xian521/article/details/7042687
- // myWidget.h
- #ifndef MYWIDGET_H
- #define MYWIDGET_H
- #include <QtGui\QWidget>
- #include <QtGui\QPaintEvent>
- #include <QtGui\QImage>
- #include <QtCore\QTimer>
- #include <cv.h>
- #include <highgui.h>
- class myWidget : public QWidget
- {
- Q_OBJECT
- public:
- myWidget(const char *filename,QWidget *parent = 0);
- ~myWidget();
- protected:
- void paintEvent(QPaintEvent *e);
- private slots:
- void nextFrame();
- private:
- CvCapture *capture;
- IplImage *iplImg;
- IplImage *frame;
- QImage *qImg;
- QTimer *timer;
- };
- #endif
- // myWidget.cpp
- #include "myWidget.h"
- #include <QtGui\QPainter>
- #include <QtCore\QPoint>
- myWidget::myWidget(const char *filename,QWidget *parent /* = 0 */) : QWidget(parent)
- {
- capture = cvCaptureFromFile(filename);
- if (capture)
- {
- frame = cvQueryFrame(capture);
- if (frame)
- this->resize(frame->width,frame->height);
- qImg = new QImage(QSize(frame->width,frame->height), QImage::Format_RGB888);
- iplImg = cvCreateImageHeader(cvSize(frame->width,frame->height), 8,3);
- iplImg->imageData = (char*)qImg->bits();
- timer = new QTimer(this);
- timer->setInterval(30);
- connect(timer,SIGNAL(timeout()),this,SLOT(nextFrame()));
- timer->start();
- }
- }
- myWidget::~myWidget()
- {
- cvReleaseImage(&iplImg);
- cvReleaseCapture(&capture);
- delete qImg; delete timer;
- }
- void myWidget::paintEvent(QPaintEvent *e)
- {
- QPainter painter(this);
- painter.drawImage(QPoint(0,0),*qImg);
- }
- void myWidget::nextFrame()
- {
- frame = cvQueryFrame(capture);
- if (frame)
- {
- if (frame->origin == IPL_ORIGIN_TL)
- {
- cvCopy(frame,iplImg,0);
- }
- else
- {
- cvFlip(frame,iplImg,0);
- }
- cvCvtColor(iplImg,iplImg,CV_BGR2RGB);
- this->update();
- }
- }
主函数里面调用
- int main(int argc,char* argv[])
- {
- QApplication app(argc,argv);
- char *filename = "test.avi";
- myWidget *mw = new myWidget(filename);
- mw->show();
- int re = app.exec();
- return re;
- }
0 0
- QT中利用opencv 代码进行摄像头编程
- MATLAB中利用摄像头抓图进行编程
- MATLAB中利用摄像头抓图进行编程
- 利用matlab和opencv进行摄像头校正
- Qt中进行OpenCV开发教程——读取视频或摄像头
- MFC中利用Opencv与C++抓取摄像头进行人脸识别(Mat)
- opencv的相关类及示例分析(一)之在QT中利用opencv用摄像头采集图像
- 利用Qt与OpenCV简单实现摄像头图像捕捉
- Qt环境下利用OpenCV采集摄像头图像并保存
- opencv笔记 1.利用摄像头进行视频文件写入
- 12、新手入手树莓派教程--Qt中使用wiringPi来驱动RGB灯、使用opencv打开摄像头(代码分享)
- 利用Qt进行FTP网络编程
- 利用Qt进行FTP网络编程
- QT+opencv+摄像头调试过程中遇到的问题
- openCV摄像头代码
- android中利用opencv进行图像识别
- MFC利用OpenCV读取摄像头
- opencv如何进行摄像头标定
- char str[] 和 char *str 的区别
- Hibernate的一些相关信息(续)
- 如何设置 zend studio 默认编码为UTF8?
- 【JDBC】JdbcUtil类加载器加载配置文件,statement.setDate、resultSet.getString("id")、单例工厂设计解耦
- 深入理解JavaScript系列(38):设计模式之职责链模式
- QT中利用opencv 代码进行摄像头编程
- log file sync等待事件和log file parallel write等待事件
- Web 研发模式演变
- Sublime 指南与推荐配置
- 对CCSprite进行高斯模糊
- 在linux下使用wine安装source insight遇到的问题
- Bochs调试命令
- 深入理解JavaScript系列(39):设计模式之适配器模式
- 【软考】(五)网络互联设备