代码拉取完成,页面将自动刷新
同步操作将从 yunsheng/基于opencv3.2+QT5的视频处理项目 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "qvediothread.h"
#include <QFile>
#include <QDebug>
#include <QThread>
#include <QPainter>
#include <qvedio.h>
#include <QFileDialog>
#include <QMessageBox>
#include "filter.h"
//#define DEBUG
/*
#ifndef DEBUG
#endif
*/
using namespace cv;
using namespace std;
static bool ifpress = false;
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//非信号槽机制的通用数据类型进行声明
qRegisterMetaType<cv::Mat>("cv::Mat");
//在main线程中开启视频播放线程,视频播放线程被main线程回收
thread = new QvedioThread(this);
thread->start();
//读取图像进入Mat发出信号重绘openGLWidget部件
connect(thread,SIGNAL(Matready(cv::Mat)),ui->openGLInputsrc1,SLOT(SetImage1(cv::Mat)));
connect(thread,SIGNAL(MatOutready(cv::Mat)),ui->openGLOutput,SLOT(SetImage1(cv::Mat)));
startTimer(50);
}
MainWindow::~MainWindow()
{
delete ui;
}
//slot
void MainWindow::open()
{
//获取视频文件信息
QString filename = QFileDialog::getOpenFileName(this, QString::fromLocal8Bit("请选择视频文件"));
if(filename.isEmpty())
{
return;
}
//将选取视频文件信息传递给视频播放线程
thread->getVideoname(filename);
//打开视频
if(!thread->open())
{
QMessageBox::information(this,"文件提示","文件无法打开");
return;
}
}
void MainWindow::sliderpressaction()
{
ifpress = true;
qDebug()<<"press is not pro";
}
void MainWindow::slidereleaseaction()
{
ifpress = false;
#ifndef DEBUG
qDebug()<<"release is not pro";
#endif
\
}
void MainWindow::slidermovedaction(int movedistance)
{
#ifndef DEBUG
qDebug()<<"move is not pro";
#endif
thread->SetPosBySld((double)movedistance/1000);
}
void MainWindow::timerEvent(QTimerEvent *event)
{
if(ifpress)return;
double pos = thread->GetPos();
ui->vedioctrl->setValue((double)pos*1000);
#ifndef DEBUG
qDebug()<<"Timer is not pro";
#endif
}
/**********************************************
* @projectName testforopencv
* @brief 获取设置图像处理的亮度和对比度参数double,并送给过滤器处理
* @param void
* @return void
**********************************************/
void MainWindow::changeImage()
{
//清理之前的任务设定
Filter::getFilter()->clearTask();
double contrast = ui->contrastset->value();
double bright = ui->brightset->value();
Filter::getFilter()->addTask({Task_SetB_C,{contrast,bright}});
#ifndef DEBUG
qDebug()<<"Setbutton is not pro";
#endif
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。