最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Qt6實現(xiàn)調(diào)用攝像頭并顯示畫面

 更新時間:2023年02月24日 11:39:35   作者:音視頻開發(fā)老舅  
這篇文章主要為大家詳細(xì)介紹了Qt6如何實現(xiàn)調(diào)用攝像頭并顯示畫面的效果,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,需要的可以參考一下

1、Cmake環(huán)境

CmakeLists.txt添加

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
find_package(Qt6 COMPONENTS Multimedia REQUIRED)
find_package(Qt6 COMPONENTS MultimediaWidgets REQUIRED)
 
target_link_libraries(samon1 PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
target_link_libraries(samon1 PRIVATE Qt6::Multimedia)
target_link_libraries(samon1 PRIVATE Qt6::MultimediaWidgets)
set_target_properties(samon1 PROPERTIES

這個samon1是我工程目錄的文件名,具體請根據(jù)自己的工程目錄名和CmakeLists配置而定。

文件調(diào)用記得修改名稱

set(PROJECT_SOURCES
        main.cpp
        camera.cpp
        camera.h
        camera.ui
)

qmake編譯環(huán)境請自行根據(jù)調(diào)用頭文件查找Qt手冊。

2、源代碼

main.cpp

#include <QApplication>//Qt必要頭文件
 
#include "camera.h"http://攝像頭
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);//Qt初始化
 
    Camera w;//創(chuàng)建窗口類
    w.setWindowTitle("Camera");//設(shè)置窗口標(biāo)題
    w.show();//顯示窗口
 
    return a.exec();//程序結(jié)束
}

camera.cpp

#include "camera.h"http://攝像頭
#include "./ui_camera.h"http://CMakeLists.txt構(gòu)建后產(chǎn)生文件
 
Camera::Camera(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::Camera)
{
    ui->setupUi(this);
 
    //qDebug("Camera Device Check:%d",Camera::checkCameraAvailability());//攝像頭驅(qū)動檢測debug測試
 
    my_camera.reset(new QCamera(QMediaDevices::defaultVideoInput()));//新建并設(shè)置攝像頭使用默認(rèn)驅(qū)動
    my_captureSession.setCamera(my_camera.data());//捕獲攝像頭畫面
    my_captureSession.setVideoOutput(ui->viewfinder);//設(shè)置捕捉畫面顯示窗口
    my_camera->start();//啟動攝像頭
 
}
 
 
//檢測攝像頭驅(qū)動能否識別
bool Camera::checkCameraAvailability()
{
    if (QMediaDevices::videoInputs().count() > 0)
        return true;//檢測到攝像頭驅(qū)動
    else
        return false;//沒有檢測到攝像頭驅(qū)動
}
 
//消類
Camera::~Camera()
{
    delete ui;
}

camera.h

//icysamon@outlook.com
 
#ifndef CAMERA_H
#define CAMERA_H
 
#include <QMainWindow>
#include <QCamera>
#include <QVideoWidget>
#include <QMediaCaptureSession>
#include <QMediaDevices>
#include <QImageCapture>
#include <QMediaRecorder>
 
 
QT_BEGIN_NAMESPACE
namespace Ui { class Camera; }
QT_END_NAMESPACE
 
 
class Camera : public QMainWindow
{
    Q_OBJECT
 
public:
    Camera(QWidget *parent = nullptr);
    ~Camera();
 
private:
    Ui::Camera *ui;
    QScopedPointer<QCamera> my_camera;
    QScopedPointer<QMediaRecorder> my_mediaRecorder;
    QMediaCaptureSession my_captureSession;
 
    bool checkCameraAvailability(void);
 
};
#endif // CAMERA_H 

camera.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Camera</class>
 <widget class="QMainWindow" name="Camera">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>762</width>
    <height>567</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QVideoWidget" name="viewfinder"/>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>762</width>
     <height>26</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <customwidgets>
  <customwidget>
   <class>QVideoWidget</class>
   <extends>QWidget</extends>
   <header location="global">qvideowidget.h</header>
   <container>1</container>
  </customwidget>
 </customwidgets>
 <resources/>
 <connections/>
</ui>

ui設(shè)計界面類關(guān)系如圖所示

  • 以QMainWindow為父類建立子類Camera
  • 以QVedioWidget為父類建立子類viewfinder

最后編譯運行,就能實現(xiàn)一個純視頻的窗口,有關(guān)攝像頭程序的截屏涉及個人隱私,故不做展示。

到此這篇關(guān)于Qt6實現(xiàn)調(diào)用攝像頭并顯示畫面的文章就介紹到這了,更多相關(guān)Qt調(diào)用攝像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言程序環(huán)境編譯+鏈接理論

    C語言程序環(huán)境編譯+鏈接理論

    這篇文章主要介紹了C語言程序環(huán)境編譯+鏈接理論,下面文章基于C語言的相關(guān)資料展開對編譯和鏈接的詳細(xì)介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-04-04
  • C++程序設(shè)計-五子棋

    C++程序設(shè)計-五子棋

    本文將以簡單的存儲結(jié)構(gòu)及簡單的運算,條件語句,分支語句,循環(huán)語句結(jié)合,帶來一個雙人對戰(zhàn)版五子棋,這是一個簡單的模型,實現(xiàn)了五子棋最最基本的功能。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • 詳解C語言中symlink()函數(shù)和readlink()函數(shù)的使用

    詳解C語言中symlink()函數(shù)和readlink()函數(shù)的使用

    這篇文章主要介紹了詳解C語言中symlink()函數(shù)和readlink()函數(shù)的使用,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • 詳解C++語言中std::array的神奇用法

    詳解C++語言中std::array的神奇用法

    本文的代碼都在C++17環(huán)境下編譯運行。當(dāng)前主流的g++版本已經(jīng)能支持C++17標(biāo)準(zhǔn),但是很多版本(如gcc 7.3)的C++17特性不是默認(rèn)打開的,需要手工添加編譯選項-std=c++17,具體內(nèi)容詳情跟隨小編一起學(xué)習(xí)吧
    2021-05-05
  • C++實現(xiàn)Matlab的zp2tf函數(shù)的示例代碼

    C++實現(xiàn)Matlab的zp2tf函數(shù)的示例代碼

    matlab?的?zp2tf?函數(shù)的作用是將極點形式的?H(s)?函數(shù)的分母展開,本文主要為大家介紹了C++實現(xiàn)Matlab的zp2tf函數(shù)示例代碼,需要的可以參考一下
    2023-04-04
  • C++?Boost?Spirit進(jìn)階教程

    C++?Boost?Spirit進(jìn)階教程

    Boost是為C++語言標(biāo)準(zhǔn)庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴展的一些C++程序庫的總稱
    2022-11-11
  • c/c++ 標(biāo)準(zhǔn)庫 bind 函數(shù)詳解

    c/c++ 標(biāo)準(zhǔn)庫 bind 函數(shù)詳解

    bind是一組用于函數(shù)綁定的模板。在對某個函數(shù)進(jìn)行綁定時,可以指定部分參數(shù)或全部參數(shù),也可以不指定任何參數(shù),還可以調(diào)整各個參數(shù)間的順序。這篇文章主要介紹了c/c++ 標(biāo)準(zhǔn)庫 bind 函數(shù) ,需要的朋友可以參考下
    2018-09-09
  • C++ 獲取進(jìn)程CPU占用率

    C++ 獲取進(jìn)程CPU占用率

    這篇文章主要介紹了C++ 獲取進(jìn)程CPU占用率,需要的朋友可以參考下
    2019-04-04
  • C 語言基礎(chǔ)教程(我的C之旅開始了)[七]

    C 語言基礎(chǔ)教程(我的C之旅開始了)[七]

    C 語言基礎(chǔ)教程(我的C之旅開始了)[七]...
    2007-02-02
  • C語言 數(shù)據(jù)結(jié)構(gòu)雙向鏈表簡單實例

    C語言 數(shù)據(jù)結(jié)構(gòu)雙向鏈表簡單實例

    這篇文章主要介紹了C語言 數(shù)據(jù)結(jié)構(gòu)雙向鏈表簡單實例的相關(guān)資料,需要的朋友可以參考下
    2017-03-03

最新評論

广州市| 商南县| 十堰市| 郯城县| 嘉义县| 无极县| 象山县| 竹北市| 清原| 北碚区| 大名县| 平顶山市| 南雄市| 罗源县| 和林格尔县| 台南县| 普格县| 眉山市| 大田县| 平果县| 宁安市| 元氏县| 呈贡县| 象山县| 江口县| 麟游县| 阜南县| 秭归县| 阿合奇县| 禹州市| 常山县| 栾城县| 绥德县| 辽中县| 靖江市| 凌海市| 高邑县| 富民县| 米林县| 保靖县| 马边|