1. 程式人生 > >QT5.7+opencv3.0做的簡易視訊播放器

QT5.7+opencv3.0做的簡易視訊播放器

利用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_OBJECT

public:
    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介面檔案中的控制元件名字與程式碼中不一致導致的。

相關推薦

QT5.7+opencv3.0簡易視訊播放

利用QT中QTimer進行重新整理。 //main.cpp #include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication

關於使用OpenCV-python開發簡易視訊播放

正在研究開簡易如何開發簡易視訊播放器,找了一些一列,包括在pyglet上面的程式碼,但是好長,執行出錯。 看到一個很簡潔的程式碼,沒有報錯但是彈開之後不會自動播放視訊,也沒有生成應用程式。 http://blog.51cto.com/7335580/2145914 這是他的連結,很簡潔

基於IJKPlayer的簡易視訊播放

寫在前面 PS:沒錯,這就是那篇躺在草稿箱裡好幾個月的殭屍部落格,直到現在(2017年1月中旬)才打算寫完,簡單總結一下知識點,以備不時之需。 現在的專案是一個電影預告的APP,必然得有個視訊播放器,之前是用VideoView寫的,並且所有功能寫在一個Activi

使用Qt5和OpenCV視訊播放

宣告在前頭:本文是查閱整合了眾多網友的知識的基礎上實現的。 首先,說在前頭。通過實現了使用OpenCV做播放器的過程,才發現OpenCV真的不適合做播放器,至少是沒有什麼太多視訊處理理論基礎認識的初學者。實現過程中也是歷盡千辛萬苦,查閱很多資料。 使用環境是Qt5.7.0+

IINA for Mac(mac上最好用的線上視訊播放) v1.0.0中文版

如果您需要一款功能強大的視訊播放器,那麼IINA for mac免費版這款mac上最好用的線上視訊播放器是您的不錯選擇!在IINA的使用者介面中,您可以使用播放列表,調整與視訊或音訊渲染相關的詳細資訊,載入和同步字幕等。而且IINA播放器還帶有Touch Bar支援,因此您可以輕鬆地從鍵盤頂部導航播放滑塊

VS2015+QT5.7+opencv3.10影象處理

VS2010+QT5.7+opencv2.4.5影象介面第一個程式       &nbs

【原創】關於視訊播放如何做到邊播邊快取?【如何用Vitamio一款功能強大的視訊播放補充篇】

上一篇介紹了怎樣做一款功能強大的視訊播放器,是基於Vitamio框架開發的。這裡我們再補充一個功能:如何做到視訊邊播放邊快取到本地? 這個需求還挺常見的。由於使用者的網路環境複雜,經常會有網速較慢看視訊時卡頓、緩衝的現象,並且有時候我們需要頻繁的拖拽進度條,如果播放的是

最簡單的基於FFMPEG+SDL的視訊播放 ver2 (採用SDL2.0

                =====================================================最簡單的基於FFmpeg的視訊播放器系列文章列表:=====================================================簡介之前做過一個

Qt5.4+OpenCV3.0使用pkg-config進行配置編譯

#------------------------------------------------- # #ProjectcreatedbyQtCreator2015-08-30T02:04:20 #

7款很棒的 HTML5 視訊播放

作為下一代的網頁語言,HTML5 擁有很多讓人期待已久的新特性,其中之一就是 video 標籤,讓開發者可以在網頁中和新增圖片一樣簡單的方式新增視訊。在這篇文章中,我收集了7個很棒的HTML5視訊播放器,你可以很容易的應用到你的網站中,文章最後還將與大家分享使用 CSS3

QT5簡易音樂播放的設計

第一次寫部落格,分享一下最近用Qt5做的一個簡單的音樂播放器。 Qt版本:Qt 5.7.0 介面比較粗糙,但是音樂播放器的一些相關基本功能還是有的。 話不多說,先上個圖。 閒著無聊加了個托盤圖示功能,能夠最小化到托盤系統,後臺播放音樂。 介面大家一目瞭然,歌曲列表用的ta

基於vue2.0實現音樂/視訊播放進度條元件的思路及具體實現方法+程式碼解釋

基於vue2.0實現音樂/視訊播放進度條元件的方法及程式碼解釋 需求分析: ①:進度條隨著歌曲的播放延長,歌曲播放完時長度等於黑色總進度條長度;時間實時更新。 ②:當滑動按鈕時,實時更新播放時間,橙色進度條長度也會隨著按鈕的滑動而改變,當滑動結束時,橙色區域停留在滑動結束的

一個簡單的視訊播放(基於FFMPEG4.0+SDL2.0.8,在Ubuntu 14.04下開發驗證)

昨天那個例子,在 Ubuntu 14.04下播放視訊時,有個問題,有播放幾秒後,畫面就變成黑白的了。剛開始懷疑是UV資料丟失,不過在將YUV資料輸出到檔案,用YUV Player Deluxe播放,畫面色彩正常著。今天在主程式中新起了一個SDL Thread,發現畫面就好了,

簡易html視訊播放

檔案列表 [email protected]:/data/video# ls hch.mp4 test.mp4 xyx.mp4 index.html video.li

用javascript和html5一個音樂播放,附帶源碼

功能 優化 str 自由 所有 音樂app 作者 弧形 ner 效果圖: 實現的功能 1、首頁 2、底部播放控件 3、播放頁面 4、播放列表 5、排行榜 6、音樂搜索 輸入搜索關鍵詞,點擊放大鏡圖標 7、側邊欄 目錄結構 開發心得與總結 1、輪播圖 首

DirectSound---簡易Wav播放

ets winapi hal param eat blog avg 效果 ive 這篇文章主要給大家介紹下如何用DirectSound打造一個簡易播放器,因為篇幅有限且代碼邏輯較為復雜,我們只介紹下核心技術內容。該播放器主要包括以下功能: 播放、暫停 播放進度提示。 1

QT5:C++實現基於Multimedia的音樂播放(序)

播放列表 nbsp eight 自帶 讀取 set 技術 strong ati 前段時間C++課設,決定做個播放器,於是參考了網上的代碼後,做了個很簡陋的音樂播放器(只寫了MP3格式)出來,雖然功能甚少,但還是決定把過程記錄一下。 成品如下圖: 播放器功能: 上、下一首

QT5:C++實現基於multimedia的音樂播放(二)

彈框 rem tooltip loop dialog ets posit list sch 今天接著上一篇來實現播放器的槽函數。 先來實現播放模式,槽函數如下: 1 //播放模式 2 void Music::musicPlayPattern() 3 { 4

iOS 超好用的本地視訊播放推薦!

本地播放器作為日常生活中不可或缺的一款工具類APP,Windows、Android等平臺不乏一些功能與體驗兼優的產品,但 iOS 平臺的使用者就沒有那麼幸運了,優秀的產品鳳毛麟角,且多數收費。 這源於 iOS 平臺的特殊性,完美支援各種視訊格式並不容易,幾乎沒有大廠在這方面投入,QQ影音

第二十四篇-用VideoView製作一個簡單的視訊播放

這是一個播放本地視訊的播放器,videoUrl1是手機裡放置視訊的路徑 效果圖: MainActivity.java package com.example.aimee.videotest; import android.Manifest; import android.co