Qt环境下利用opencv逐帧播放视频
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QMainWindow>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <QTimer>
#include <QDebug>
namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private:Ui::MainWindow *ui;cv::VideoCapture video;cv::Mat src_frame;QTimer *timer;QImage qimg;
private slots:void getframe();void on_pushButton_clicked();};#endif // MAINWINDOW_H
#include "mainwindow.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "iostream"
using namespace cv;
using namespace std;
MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);video=cv::VideoCapture("C:\\Users\\Administrator\\Desktop\\code\\video\\video\\video\\1.avi");
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_clicked()
{timer = new QTimer(this);connect(timer,SIGNAL(timeout()),this,SLOT(getframe()));timer->start(42);//按照每秒24帧计算,每过42ms执行一次getframe
}
int k=0;
void MainWindow::getframe()
{k++;cout<<k<<"get frame"<<endl;video>>src_frame; //从视频取帧if(!src_frame.data)timer->stop();//如果取不到数据,终止计时器qimg = QImage((const uchar*)src_frame.data,src_frame.cols,src_frame.rows, QImage::Format_RGB888); //简单地转换一下为Image对象,rgbSwapped是为了显示效果色彩好一些。//ui->label->clear();ui->label->setPixmap(QPixmap::fromImage(qimg));
}
Qt环境下利用opencv逐帧播放视频相关推荐
- (代码已更新)QT 环境下 用opencv 进行骨架细化(骨架提取)得到图像中心线
之前的任务是把如下的一个直钢管图像进行处理,提取出中心线,用到了骨架细化算法以及一些常用的opencv处理.思路就是: 预处理通过灰度得到二值图像--二值图形态学处理--骨架细化提取中心线--霍夫概率 ...
- Vue利用Canvas实现逐帧播放图片不闪烁(Vue解决逐帧播放图片闪烁问题)
Vue利用Canvas实现逐帧播放图片不闪烁 前言 Vue代码实现 实现效果 前言 Vue采用<el-image :src="src"></el-image> ...
- FFplay逐帧播放分析
FFplay 播放器有一个比较有趣的功能,就是逐帧播放.因为平时视频文件的帧率是挺高的,一秒24帧,有些细节一瞬间就过去了,不太容易注意到. 利用逐帧播放功能,你可以一帧一帧的观察视频画面,在查处交通 ...
- 【Python-利用动态二维码传输文件(四)】使用pyautogui库录屏(连续截图),然后利用OpenCV逐张读取截图,识别当中的二维码信息,并把信息重组成原文件
程序示意图 目录 一.使用pyautogui库,对电脑屏幕进行录屏 二.使用OpenCV库对100帧截图进行识别,并与原29帧二维码图片内含信息进行比对 三.把获取的100帧二维码信息去重,并保持原来 ...
- 页面滚动时触发图片逐帧播放_如何在滚动效果上创建逐帧运动图像
页面滚动时触发图片逐帧播放 A step by step guide on how to create that dynamic image background you see everywhere ...
- Anaconda3 | Ubuntu(python3.6)环境下安装opencv
Anaconda3 | Ubuntu(python3.6)环境下安装opencv 文章转载自:https://blog.csdn.net/wds2435629591/article/details/7 ...
- opencv2/3播放视频实现进度条显示拖动、快进、快退、逐帧播放、显示当前帧于图像
最近在做运动物体跟踪,为了方便调试,需要对视频播放进行控制 搜索后发现网上的都是参照<学习opencv>基于opencv1版本的, 故查阅相关资料自己写了一个. 主要功能: void Sh ...
- python连接opencv库_python环境下安装opencv库的方法
注意:安装opencv之前需要先安装numpy,matplotlib等 一.安装方法 方法一.在线安装 1.先安装opencv-python pip install opencv-python --u ...
- java 内存映射文件进程间通讯_[转]Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile...
进程间的通信方式有很多种, 上次我们说了最傻瓜的"共享外存/文件"的方法. 那么, 在本文中, 我们即将学习"共享内存"的方式实现进程间的通信, 这是IPC最快 ...
- opencv在python环境下的安装_关于python环境下的opencv安装
吐槽: 这一天我终于记起了这个博客.今天搞python环境下的opencv,又弄了一天,很烦躁.之前配置VS的opencv也是花了好久的时间,然后突然发现之前记录在电脑上的文档都找不到了,于是决定还是 ...
最新文章
- 侠客风云传服务器维护,《侠客风云传online》4月20日服务器数据互通公告
- 菜单Menu(AS开发实战第四章学习笔记)
- java设计模式---合成模式
- java field, property,variable及getField和getDeclaredField的区别
- Redux API之applyMiddleware
- java hanoi塔问题_java 解决汉诺塔问题
- 如何在command中使用log
- 演讲《云图,让阅读更精彩(Better Cloudary™, Better Reading)》
- win32开发(mdi应用)
- LeetCode 542. 01 矩阵
- 【联合仿真】Adams六关节机械臂与Matlab/Simulink的联合仿真(上)
- [译]反射(Reflection)和动态(dynamic)
- FreeRTOS 正点原子教程学习笔记
- 支持Win7的星号密码查看器的实现
- LinkedIn领英上的几度人脉是什么意思?如何突破领英人脉限制高效率开发客户?
- 看懂Oracle执行计划
- xp启用计算机共享打印机,xp系统和win7系统怎么共享打印机_xp如何连接 win7共享打印机...
- 快速入门学习qt5--mian主函数代码详解
- 短视频SDK测试tips
- 前端框架千千万,每隔两年翻一番