摘要:在Linux環境下可以通過V4L2接口及ioctl相關函數直接在底層調用攝像頭設備,進行攝像頭控制及圖像預覽和捕獲,但是該方法相對比較復雜;Qt5.0版本新增了QMultimedia模塊提供了更為方便的編程支持,該模塊主要涵蓋視頻、音頻、收音機以及攝像頭等功能支持,提供了非常多的QML類型和C++類用以處理多媒體內容,Qt 5將Qt Multimedia模塊放在了核心模塊中,因此它支持所有主要平台,這些類需要在 pro 文件中添加 QT += multimedia.
平台環境:Qt5.0.2,Qt Creator(Ubuntu系統),筆記本自帶攝像頭.
Step1:用Qt creator新建Qt Widgets Application工程
按照提示下一步即可創建模板工程,如圖,並修改.pro文件添加 QT +=multimedia,QT+=multimediawidgets項
Step2:雙擊mainwindow.ui啟動qt designer可視化布局界面
首先在布局左側放置一個Horizental Layout控件,修改對象名為ImageView,用於圖像預覽顯示;再在右側放一個Vertical Layout 控件,依次在其中放置一個label和三個Push Button,修改label的對象名為ImageCapture,用於顯示捕獲的圖像,修改按鈕的顯示名稱及對象名分別為buttonCapture, buttonSave, buttonQuit,拖動控件到合適的布局,如圖
Qt入門學習——Qt 5 幫助文檔的使用 http://www.linuxidc.com/Linux/2015-09/123102.htm
Ubuntu 環境下Gtk與QT編譯環境安裝與配置 http://www.linuxidc.com/Linux/2013-08/88539.htm
Linux系統下QT環境搭建 http://www.linuxidc.com/Linux/2013-07/87576.htm
Ubuntu下QT控制台程序無法運行的解決方案以及XTerm的配置方法 http://www.linuxidc.com/Linux/2013-06/86244.htm
Ubuntu 10.04下QT4.7.4移植詳解 http://www.linuxidc.com/Linux/2013-01/77930.htm
Ubuntu 14.04下安裝部署Qt5開發環境 http://www.linuxidc.com/Linux/2014-05/101774.htm
Step3:修改mainwindow.h
源碼如下
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QCamera>
#include <QCameraViewfinder>
#include <QCameraImageCapture>
#include <QFileDialog>
namespace Ui {
class MainWindow;
}
class QCamera;
class QCameraViewfinder;
class QCameraImageCapture;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void captureImage();
void displayImage(int,QImage);
void saveImage();
private:
Ui::MainWindow *ui;
QCamera *camera;
QCameraViewfinder *viewfinder;
QCameraImageCapture *imageCapture;
};
#endif // MAINWINDOW_H
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2016-03/128792p2.htm