QT5.7+opencv3.0做的简易视频播放器
来源:互联网 发布:软件小站的解压密码 编辑:程序博客网 时间:2024/05/17 16:16
利用 QT中QTimer进行刷新。
//main.cpp#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();}
//mainwindow.cpp#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); timer = new QTimer(this); QObject::connect(timer,SIGNAL(timeout()),this,SLOT(readFrameSlot()));}MainWindow::~MainWindow(){ delete ui;}void MainWindow::on_pushButton_clicked(){ capture.open(0);//"1.avi" if( !capture.isOpened()) { qDebug()<< "open camera error"<<endl; this->close(); } else { timer->start(33); }}void MainWindow::on_pushButton_2_clicked(){ timer->stop(); ui->label->setPixmap(QPixmap()); this->close();}void MainWindow::readFrameSlot(){ capture >> frame; if(!frame.empty()) { img = QImage((const unsigned char*)(frame.data),frame.cols,frame.rows, QImage::Format_RGB888).rgbSwapped(); img = img.scaled( ui->label->width(), ui->label->height(), Qt::IgnoreAspectRatio, Qt::FastTransformation );//调整图片大小,使图片和显示的label控件一样大 ui->label->setPixmap(QPixmap::fromImage(img)); }}
//mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QDialog>#include <QDebug>#include <QTimer>#include <QImage>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>using namespace cv;namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); Mat frame;//video frame VideoCapture capture; QTimer *timer; QImage img;private slots: void on_pushButton_clicked(); void on_pushButton_2_clicked(); void readFrameSlot();private: Ui::MainWindow *ui;};#endif // MAINWINDOW_H
若出现UI什么问题大部分都是都是ui界面文件中的控件名字与代码中不一致导致的。
1 0
- QT5.7+opencv3.0做的简易视频播放器
- mfc对话框做一个简易的ffmpeg视频播放器
- QT5简易音乐播放器的设计
- 使用Qt5和OpenCV做视频播放器
- 简易视频播放器
- 简易视频播放器
- 简易视频播放器
- 简易视频播放器
- 用ffmpeg+qt做点有趣的事(4)----- 简易视频播放器
- 简易视频播放器的制作
- android 简易视频播放器的实现
- 基于IJKPlayer的简易视频播放器
- 构建简易的音乐播放器/视频播放器
- 【Android】播放视频的简易播放器源码
- Android简易视频播放器
- Qt5--播放视频的混合编程
- 一个基于ffmpeg的简易视频播放器
- videoView播放视频,简易视频播放器自己写
- 餐厅
- 我的软件工程课目标
- redis注册成windows服务
- 北大 C++ 8.3 vector容器
- 八大经典排序算法总结
- QT5.7+opencv3.0做的简易视频播放器
- [.net 面向对象程序设计深入](26)Redis——基础
- PCIe学习笔记(9)--- 配置空间的两种访问方式--LEGACY
- 我的软件工程目标
- 关于java使用Ftpclient上传到FTP服务器文件损坏的问题解决
- leetcode 4. Median of Two Sorted Arrays
- 不敢死队问题 (sdut oj)
- CI1.1 实现一个算法,确定一个字符串的所有字符是否全部不同。假使不允许使用额外的数据结构。
- Linux监控JVM常用命令解析