五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

嵌入式Qt-簡易網絡監(jiān)控攝像頭

2022-09-07 22:05 作者:碼農愛學習-B站  | 我要投稿

本編利用Qt實現(xiàn)一個網絡攝像頭功能,包含一個服務端和一個客戶端,服務端用于將USB攝像頭轉換為一個IP攝像頭,當有客戶端連接時,將其捕獲到的圖像通過TCP發(fā)送出去;客戶端運行在Linux板子上,用于查看攝像頭的實時畫面。

1 必備基礎知識

本篇需要編寫一個服務器和客戶端

注意,Qt中對Socket的操作進行了進一步的封裝,其基本思想還是一樣的。

下面就來看一下Qt中如何實現(xiàn)TCP Socket通信。

1.1 QTcpSocket與QTcpServer

  • QTcpSocket,在Qt中,Socket被封裝成了QTcpSocket,可以用它實現(xiàn)TCP客戶端的功能,以及服務端接收到客戶端后,對客戶端的處理。

  • QTcpServer,對于TCP服務端的功能,可以使用QTcpServer來完成。

這里整理Qt中TCP Socket的使用方法,配合Qt的信號與槽機制,即可實現(xiàn)服務端/客戶端數(shù)據(jù)的收發(fā)處理。


1.2 QCamera相關

  • QCamer,獲取當前系統(tǒng)可用的攝像頭 類似獲取串口

  • QCamerInfo,獲取當前系統(tǒng)可用的攝像頭 類似獲取串口

  • QCameraViewfinder,取景框類,攝像頭的實時畫面顯示到這個里面

  • QCameraImageCapture,圖像錄制類,與QCamer 配合使用可進行拍照

2 Win平臺上測試

首先在Windows平臺上用Qt Creator編寫服務端和客戶端程序,并運行測試。

2.1 服務器端

先來看下服務器端的最終效果:

  • 左側是攝像頭的顯示界面

  • 可以切換不同的攝像頭作為視頻源(筆記本自帶的攝像頭與USB外接的攝像頭)

  • 可以切換攝像頭的顯示分辨率

  • 可以選擇開啟或關閉攝像頭的IP服務

2.1.1 攝像頭畫面顯示

2.1.2 創(chuàng)建Socket服務


2.1.3 讀取圖像并發(fā)送給客戶端

先定義一下圖像傳送結構體和傳送狀態(tài):

具體的實現(xiàn)過程:

需要注意的是,圖像是需要分包傳送的,最后一包一般都不是設定的最大長度,需要計算一下最后一包的數(shù)據(jù)長度。

2.2 客戶端

先來看下客戶端的最終效果:

  • 右側是攝像頭畫面的顯示框

  • 可以修改要連接的服務端的IP地址

  • 可以選擇開啟或關閉網絡攝像頭

2.2.1 創(chuàng)建Socket連接

2.3.2 接收服務端的圖像

2.3.3 將圖像顯示出來


3 嵌入式Linux平臺上測試

3.1 交叉編譯

將客戶端程序的源代碼拷貝到Ubunu中進行交叉編譯,具體編譯過程可參考之前的文章:

嵌入式Qt-動手編寫并運行自己的第1個ARM-Qt程序

本篇的實驗環(huán)境,繼續(xù)使用的是燒錄了野火i.MX6ULL自帶的系統(tǒng)固件Linux板子,需要通過SSH的方式將編譯的程序再發(fā)送到板子中,SSH傳輸文件的操作可參考上篇文章:

嵌入式Qt-控制硬件:滑動條控制RGB燈

3.2 實驗演示


4 總結

本篇介紹了如何用Qt實現(xiàn)一個網絡攝像頭功能,通過服務端將USB攝像頭轉換為一個IP攝像頭,Linux板子中的客戶端來連接服務器,將攝像頭的實時畫面顯示出來。



嵌入式Qt-簡易網絡監(jiān)控攝像頭的評論 (共 條)

分享到微博請遵守國家法律
肥城市| 高邑县| 正宁县| 广宗县| 江安县| 淮南市| 银川市| 宿州市| 肥东县| 吴江市| 齐齐哈尔市| 宜宾市| 葫芦岛市| 白城市| 克东县| 吉水县| 武陟县| 长兴县| 汾西县| 额敏县| 巫山县| 葫芦岛市| 平果县| 太湖县| 元江| 武鸣县| 滨海县| 京山县| 柏乡县| 大余县| 长白| 新密市| 乌什县| 中牟县| 象州县| 辽宁省| 开原市| 黎平县| 芜湖市| 钟山县| 乐清市|