欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)激活碼778899分享:QT調(diào)用攝像頭實(shí)現(xiàn)拍照功能

柚子快報(bào)激活碼778899分享:QT調(diào)用攝像頭實(shí)現(xiàn)拍照功能

http://yzkb.51969.com/

文件配置

創(chuàng)建項(xiàng)目后

配置文件是.pro文件

首先在Qt中調(diào)用攝像頭功能,通常會(huì)使用Qt Multimedia模塊中的QCamera類(lèi)。所以需要導(dǎo)入這個(gè)模塊,這個(gè)模塊在較新版本的Qt中是直接支持的,但你可能需要確保你的Qt環(huán)境已經(jīng)包含了Multimedia模塊。此外,你還需要確保你的操作系統(tǒng)支持?jǐn)z像頭,并且攝像頭已經(jīng)被正確安裝和驅(qū)動(dòng)。我使用的QT版本是5.14.2。

在Qt中調(diào)用攝像頭功能時(shí),Multimediawidgets模塊也是一個(gè)重要的部分,特別是當(dāng)你需要顯示攝像頭捕捉到的視頻流時(shí)。Multimediawidgets模塊提供了QCameraViewfinder類(lèi),這個(gè)類(lèi)用于顯示攝像頭的實(shí)時(shí)視頻預(yù)覽。因?yàn)槲覀儠?huì)在后面講攝像頭拍攝內(nèi)容做一個(gè)實(shí)時(shí)預(yù)覽,所以添加Multimediawidgets。

UI界面

我這里只是顯示攝像頭的實(shí)時(shí)預(yù)覽和一個(gè)拍攝功能。

Qwidget是用來(lái)顯示實(shí)時(shí)檢測(cè)的視頻畫(huà)面;

textEdit是顯示可調(diào)用的攝像頭的設(shè)備名稱(chēng);

pushbutton是實(shí)現(xiàn)取幀拍照功能的實(shí)現(xiàn)。

代碼文件

1.頭文件

導(dǎo)入我們會(huì)用到的類(lèi)

#include

#include

#include

在Qt中,當(dāng)想要使用攝像頭進(jìn)行視頻預(yù)覽和圖像捕捉時(shí),你會(huì)用到QCamera、QCameraViewfinder和QCameraImageCapture這幾個(gè)類(lèi)。

QCamera

QCamera類(lèi)提供了對(duì)攝像頭設(shè)備的訪問(wèn)。可以使用它來(lái)啟動(dòng)和停止視頻捕捉,以及配置攝像頭的各種參數(shù)(如分辨率、幀率等)。

QCameraViewfinder

QCameraViewfinder類(lèi)是一個(gè)小部件,用于顯示來(lái)自攝像頭的實(shí)時(shí)視頻流。它是QCamera的視圖查找器,你需要將它與QCamera實(shí)例關(guān)聯(lián)起來(lái),以便在UI中顯示視頻預(yù)覽。

QCameraImageCapture

QCameraImageCapture類(lèi)提供了從攝像頭捕捉靜態(tài)圖像的功能。你可以使用它來(lái)設(shè)置圖像捕捉的參數(shù)(如分辨率、格式等),并處理圖像捕捉事件(如捕捉完成)。

我們需要定義這些類(lèi)的私有成員變量。

示例代碼

QCamera *ca;

QCameraImageCapture *capture;

我們還需要pushbutton的槽函數(shù)聲明,這里可以直接在ui界面選中控件轉(zhuǎn)到槽函數(shù),會(huì)自動(dòng)在頭文件中添加聲明。

整體的頭文件代碼如下: ?

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

#include

#include

QT_BEGIN_NAMESPACE

namespace Ui { class MainWindow; }

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private slots:

void on_pushButton_clicked();

private:

Ui::MainWindow *ui;

QCamera *ca;

QCameraImageCapture *capture;

};

#endif // MAINWINDOW_H

2.源文件

在源文件中主要包含兩部分內(nèi)容一個(gè)是設(shè)備的訪問(wèn)于ui控件的連接,還有就是我們實(shí)現(xiàn)靜態(tài)圖像捕獲的功能函數(shù)的實(shí)現(xiàn)。

首先也是導(dǎo)入一些我們需要的類(lèi)

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include

#include

#include

#include

#include

#include

QCameraInfo類(lèi)是Qt Multimedia模塊的一部分,用于查詢(xún)系統(tǒng)當(dāng)前可用的相機(jī)設(shè)備信息。它提供了一系列靜態(tài)函數(shù)和方法,允許開(kāi)發(fā)者檢測(cè)并獲取有關(guān)系統(tǒng)上安裝的攝像頭設(shè)備的信息。

這個(gè)類(lèi)的導(dǎo)入是因?yàn)槲疫€添加了一個(gè)textEdit的控件,是為了顯示訪問(wèn)到的設(shè)備信息,因?yàn)檫@里調(diào)用攝像頭設(shè)備,可能是外接的設(shè)備,代碼中我使用的infos.value的索引是1,如果使用的是內(nèi)置的比如筆記本自帶的攝像頭一般默認(rèn)索引為0,也可以去電腦設(shè)備信息中進(jìn)行查詢(xún)。

ui->setupUi(this);

QList infos = QCameraInfo::availableCameras(); // 獲取系統(tǒng)中可用的攝像頭信息列表

qDebug() << infos.value(1).deviceName() << ";" << infos.value(0).description(); // 打印第一個(gè)攝像頭的設(shè)備名和描述

QString camera = infos.value(1).deviceName(); // 獲取第一個(gè)攝像頭的設(shè)備名

qDebug() << camera; // 打印設(shè)備名

ui->textEdit->setText(QString("設(shè)備信息:").arg(camera));

ca = new QCamera(camera.toUtf8(), this); // 嘗試創(chuàng)建一個(gè)QCamera對(duì)象,但這里有一個(gè)問(wèn)題

QCameraViewfinder *v2 = new QCameraViewfinder(ui->camare); // 嘗試將 QCameraViewfinder 設(shè)置為某個(gè) QWidget 的子控件

v2->resize(ui->camare->size()); // 嘗試調(diào)整 QCameraViewfinder 的大小,同樣因?yàn)?ui->camare 可能無(wú)效而有問(wèn)題

ca->setViewfinder(v2); // 將 QCameraViewfinder 設(shè)置為 QCamera 的視圖查找器

v2->show(); // 顯示 QCameraViewfinder,但通常如果它是某個(gè)已顯示 QWidget 的子控件,則不需要顯式調(diào)用 show()

ca->start(); // 啟動(dòng)攝像頭

功能函數(shù)的定義,ui界面轉(zhuǎn)到槽的時(shí)候源文件會(huì)自動(dòng)定義空的功能函數(shù)的實(shí)現(xiàn),只需要添加內(nèi)容就行。

capture = new QCameraImageCapture(ca); 創(chuàng)建一個(gè)QCameraImageCapture對(duì)象,該對(duì)象與先前創(chuàng)建的QCamera對(duì)象ca相關(guān)聯(lián)。 ? 所有通過(guò)capture對(duì)象進(jìn)行的圖像捕獲操作都將使用ca攝像頭。 ?

capture->capture("D:\\qt xiangmu\\photo.jpg");?嘗試使用capture對(duì)象捕獲一張圖像,并將其保存到指定的文件路徑中。這里的路徑被我硬編碼為"D:\\qt xiangmu\\photo.jpg"。更換自己的路徑。

QMessageBox::information(this, "good", "good");顯示一個(gè)消息框,向用戶(hù)顯示信息“good”。 ? 這與圖像捕獲操作是獨(dú)立的,它會(huì)在捕獲操作啟動(dòng)后立即執(zhí)行,而不管捕獲操作是否成功。 ?

void MainWindow::on_pushButton_clicked()

{

capture = new QCameraImageCapture(ca);

capture->capture("D:\\qt xiangmu\\photo.jpg");

QMessageBox::information(this,"good","good");

}

效果展示

柚子快報(bào)激活碼778899分享:QT調(diào)用攝像頭實(shí)現(xiàn)拍照功能

http://yzkb.51969.com/

參考閱讀

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19608261.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄