加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
mainwindow.cpp 2.65 KB
一键复制 编辑 原始数据 按行查看 历史
#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
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化