Qt獲取攝像頭畫面的每一幀資料

2021-09-07 23:43:14 字數 2398 閱讀 8206

繼承自qabstractvideosu***ce,實現它的一些虛函式,可以在實現的虛函式 present 中獲取到攝像頭畫面的一幀資料,拿到資料之後就可以轉換處理了,這裡拿到資料之後,繪製在主視窗上了。

主要**:

首先在 .pro 中加入 ********** 模組:

qt += core gui ********** **********widgets
mainwindow.cpp

#include

"mainwindow.h"

#include

"ui_mainwindow.h"

#include

#include

mainwindow::

mainwindow

(qwidget *parent)

:qmainwindow

(parent),ui

(new ui::mainwindow)

mainwindow::

~mainwindow()

qsize mainwindow::

sizehint()

const

void mainwindow::

paintevent

(qpaintevent *event)

} su***ce_-

>

paint

(&painter)

;//在主視窗繪製

}else

}void mainwindow::

resizeevent

(qresizeevent *event)

myvideosu***ce.h

#ifndef myvideosu***ce_h

#define myvideosu***ce_h

#include #include #include #include class myvideosu***ce : public qabstractvideosu***ce

;#endif

myvideosu***ce.cpp

#include

"myvideosu***ce.h"

#include

#include

#include

#include

myvideosu***ce::

myvideosu***ce

(qwidget *widget, qobject *parent)

:qabstractvideosu***ce

(parent)

,widget_

(widget)

,imageformat_

(qimage::format_invalid)

qlist<:pixelformat> myvideosu***ce::

supportedpixelformats

(qabstractvideobuffer::handletype handletype)

const

else

}bool myvideosu***ce::

isformatsupported

(const qvideosu***ceformat & format)

const

bool myvideosu***ce::

start

(const qvideosu***ceformat &format)

return

false;}

void myvideosu***ce::

stop()

bool myvideosu***ce::

present

(const qvideoframe &frame)

//每一幀攝像頭的資料,都會經過這裡

currentframe_ = frame;

widget_-

>

repaint

(targetrect_)

;return

true;}

qrect myvideosu***ce::

videorect()

const

void myvideosu***ce::

updatevideorect()

void myvideosu***ce::

paint

(qpainter *painter)

//這裡繪製每一幀資料

}

效果:

OpenCV的配置和獲取攝像頭畫面

1 安裝從官網下的安裝包 2 工程目錄的配置 新建乙個win32 控制台的空專案,新增乙個原始檔。在屬性管理器視窗中雙擊開啟debug win32資料夾下的microsoft.cpp.win32.user 在通用屬性,vc 目錄,包含目錄中新增 d aaa opencv build include ...

ubuntu 下同時顯示多個攝像頭畫面

ubuntu下使用測試uvc 攝像頭的工具很多,如luvcview mplayer等等。該帖使用luvcview,對uvc攝像頭進行測試 1.準備工作 luvcview是乙個開源專案,用於uvc攝像頭的測試,只要您的攝像頭支援uvc驅動,即可使用luvcview測試程式。檢視id有多種方法,lsus...

Qt 顯示實時攝像頭內容

方法1 使用opencv,我的opencv版本是2.4.6.1,最新版,攝像頭是中星微的z301p,系統ubuntu,攝像頭驅動linux核心自帶,很遺憾這種方法我測試時發現只支援單攝像頭,如果強行增加攝像頭,執行時會出各種錯誤而且奇卡,原因不明 標頭檔案 ifndef mainwindow h d...