繼承自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...