国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

PC電腦實時接收樹莓派攝像頭圖像數據并顯示(Python實現)

這篇具有很好參考價值的文章主要介紹了PC電腦實時接收樹莓派攝像頭圖像數據并顯示(Python實現)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、任務概述

二、環(huán)境安裝

三、實現

3.1 上位機端(PC服務器端)

3.2 樹莓派端(客戶請求端)

四、運行效果


一、任務概述

最近在做一個樹莓派自動駕駛小車,上位機使用windows10 PC電腦,下位機小車采用樹莓派4B,樹莓派上安裝了USB免驅攝像頭。上位機通過SSH來控制和分析樹莓派小車。樹莓派上使用python版的opencv讀取攝像頭圖像數據。

實驗時發(fā)現,上位機通過SSH控制樹莓派時會自發(fā)的將遠程圖像數據也顯示過來(調用cv2.imshow的時候),但是這種通過SSH傳輸圖像的方式會造成SSH卡頓,導致視頻圖像卡、下位機機電控制卡。但是在小車運行的時候它上面的樹莓派不方便連接顯示器,而我們又需要實時反饋運動中的小車圖像給上位機來調試分析。因此,需要一種高效的在樹莓派和PC之間通過無線局域網的視頻圖像傳輸方案。

網上方法有很多,這里介紹一種自己親身試驗過并且相對比較簡單的方法。

二、環(huán)境安裝

首先確保上位機(PC電腦)和下位機(樹莓派)均安裝好了python版的opencv和numpy。

接下來在上下位機均安裝幀傳輸模塊zmq:

sudo pip3 install zmq

然后在上下位機均安裝幀編解碼庫pybase64:

sudo pip3 install pybase64

到這里環(huán)境安裝結束。

三、實現

3.1 上位機端(PC服務器端)

import cv2
import zmq
import base64
import numpy as np

def main():
    '''
    主函數
    '''
    context = zmq.Context()
    footage_socket = context.socket(zmq.PAIR)
    footage_socket.bind('tcp://*:5555')
    cv2.namedWindow('Stream',flags=cv2.WINDOW_NORMAL | cv2.WINDOW_KEEPRATIO)


    while True:
        print("監(jiān)聽中")
        frame = footage_socket.recv_string() #接收TCP傳輸過來的一幀視頻圖像數據
        img = base64.b64decode(frame) #把數據進行base64解碼后儲存到內存img變量中
        npimg = np.frombuffer(img, dtype=np.uint8) #把這段緩存解碼成一維數組
        source = cv2.imdecode(npimg, 1) #將一維數組解碼為圖像source
        cv2.imshow("Stream", source) #把圖像顯示在窗口中
        cv2.waitKey(5) #延時等待,防止出現窗口無響應

 
if __name__ == '__main__':
    '''
    程序入口
    '''
    main()

然后在上位機上運行上述腳本代碼。

3.2 樹莓派端(客戶請求端)

import cv2
import zmq
import base64


def main():
    '''
    主函數
    '''
    IP = '192.168.2.148' #上位機視頻接受端的IP地址

    # 創(chuàng)建并設置視頻捕獲對象
    cap = cv2.VideoCapture(0)
    print("攝像頭是否已經打開 ? {}".format(cap.isOpened()))
    cap.set(cv2.CAP_PROP_FRAME_WIDTH, 320)  # 設置圖像寬度
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 240)  # 設置圖像高度

    # 建立TCP通信協議
    contest = zmq.Context()
    footage_socket = contest.socket(zmq.PAIR)
    footage_socket.connect('tcp://%s:5555'%IP)

    while True:
        # 讀取圖像
        ret, frame = cap.read()

        # 轉換為流數據并編碼
        encoded, buffer = cv2.imencode('.jpg', frame) 
        jpg_as_test = base64.b64encode(buffer) #把內存中的圖像流數據進行base64編碼

        # 發(fā)送數據
        footage_socket.send(jpg_as_test) #把編碼后的流數據發(fā)送給視頻的接收端
        cv2.waitKey(5) #延時等待,防止出現窗口無響應


if __name__ == '__main__':
    '''
    程序入口
    '''
    main()

在下位機端運行上述腳本代碼。

四、運行效果

PC電腦實時接收樹莓派攝像頭圖像數據并顯示(Python實現)

?整體運行還是比較順暢的,解決了上下位機圖像實時顯示的問題。文章來源地址http://www.zghlxwxcb.cn/news/detail-514935.html

到了這里,關于PC電腦實時接收樹莓派攝像頭圖像數據并顯示(Python實現)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 電腦獲取網絡攝像頭圖像及調用

    電腦獲取網絡攝像頭圖像及調用

    目前市面上常見的攝像頭大體有以下幾種類型,一種是usb攝像頭,一種是帶wifi網絡攝像頭,還有一種有線網絡攝像頭,通過一根網線連接電腦用于傳輸圖像。本文主要講解下有線網絡攝像頭的調用配置。 這種攝像頭一般有兩個接口,分別是網口和電源口,接線非常簡單就是

    2024年02月01日
    瀏覽(28)
  • Python實現PC攝像頭掃描二維碼,讓你的電腦變身QR碼識讀器!

    Python實現PC攝像頭掃描二維碼,讓你的電腦變身QR碼識讀器!

    目錄 簡介: 源代碼: 源代碼說明: 效果如下所示: 使用PC攝像機掃描二維碼可以有很多應用場景,例如: 支付寶、微信支付等移動支付方式需要使用二維碼進行支付,PC攝像機可以掃描這些支付二維碼,從而實現PC端支付功能; 在生產制造過程中,可以使用二維碼來管理產

    2024年02月03日
    瀏覽(23)
  • Pyqt5+Opencv實現攝像頭圖像的實時讀取并顯示

    Pyqt5+Opencv實現攝像頭圖像的實時讀取并顯示

    QTimer在界面中不可見,在UI設計器中也找不到它,只能通過純代碼實現,主要作用是定時特定的時間。 想要掌握QTimer只需掌握setInterval(設置定時時間,單位ms)、start(啟動定時器),和定時時間到時所發(fā)出的信號timeout()即可。程序設計的思路: 1.先設定定時周期 2.綁定timeout()信號

    2024年02月04日
    瀏覽(27)
  • VC++中使用OpenCV讀取圖像、讀取本地視頻、讀取攝像頭并實時顯示

    VC++中使用OpenCV讀取圖像、讀取本地視頻、讀取攝像頭并實時顯示

    最近閑著跟著油管博主murtazahassan,學習了一下LEARN OPENCV C++ in 4 HOURS | Including 3x Projects | Computer Vision,對應的Github源代碼地址為:Learn-OpenCV-cpp-in-4-Hours OpenCV是一個開源的計算機視覺庫,其官網地址為:https://opencv.org/,對應Github源碼地址為:https://github.com/opencv/opencv,目前來說

    2024年01月17日
    瀏覽(36)
  • [Python] pyqt6+opencv實現攝像頭圖像的實時讀取并顯示(完整源代碼)

    [Python] pyqt6+opencv實現攝像頭圖像的實時讀取并顯示(完整源代碼)

    本文將會介紹如何通過opencv來實時捕獲攝像頭的圖像,并通過pyqt6進行圖像視頻呈現。 1. 通過opencv的VideoCapture類讀取攝像頭的每一幀圖像,通過pyqt6的QLabel來顯示圖像 2. 根據獲取的圖像的寬和高大小以及QLabel的大小來動態(tài)調整最后輸出的圖像的寬和高 3. 調整窗體大小,動態(tài)調

    2024年01月24日
    瀏覽(89)
  • 用python的socket通信將Yolov5的USB攝像頭實時推理結果發(fā)送給另一臺電腦

    用python的socket通信將Yolov5的USB攝像頭實時推理結果發(fā)送給另一臺電腦

    將配置yolov5的電腦當客戶端,局域網內的另一臺電腦當服務端,利用python的socket通訊,將客戶端Yolov5的USB攝像頭實時推理結果發(fā)送給另一臺電腦的服務端。 一、修改Yolov5的detect.py文件,啟動客戶端 1.1在文件前添加 import socket #include 1.2在?LOGGER.info前添加以下代碼 # Print time (

    2024年02月09日
    瀏覽(26)
  • 樹莓派4B攝像頭安裝+Ubuntu22.04系統(tǒng)攝像頭識別

    樹莓派4B攝像頭安裝+Ubuntu22.04系統(tǒng)攝像頭識別

    樹莓派4B安裝上攝像頭后,是不能立即使用的,需要進行一些配置才能使用,本文詳細說明了配置過程和測試結果。 執(zhí)行以下命令,檢測是否可以識別攝像頭: 結果如下: 返回結果:supported=0 detected=0,說明此時攝像頭硬件還沒有識別出來,而且設備是不支持攝像頭配件的,

    2024年02月22日
    瀏覽(76)
  • 【樹莓派筆記】樹莓派攝像頭的簡單使用

    【樹莓派筆記】樹莓派攝像頭的簡單使用

    這里使用的是樹莓派CSI?(Camera Serial Interface)攝像頭。引腳面朝micoHDMI接口處。關機后安裝,熱插拔可能無法檢測到。 終端輸入 ? 之后重啟即可 命令行用 raspistill 使用攝像頭進行拍照。 可以用 -e png 指定生成jpg、png、gif、bmp格式的圖片,后三種無損,生成速度會慢些。 raspiy

    2024年02月15日
    瀏覽(25)
  • 樹莓派——opencv打開樹莓派攝像頭調試記錄

    樹莓派——opencv打開樹莓派攝像頭調試記錄

    目錄 一、安裝包:(注意換要源,不要用系統(tǒng)默認源) 問題1:磁盤空間不足——把根目錄擴展到整個SD卡 解決:把根目錄擴展到整個SD卡 二、下載 1、先創(chuàng)建opencv目錄: 2、下載 問題:fatal: unable to access \\\'https://github.com/opencv/opencv.git/\\\': gnutls_handshake() failed: The TLS connection was

    2024年02月11日
    瀏覽(26)
  • 樹莓派攝像頭使用方法

    樹莓派攝像頭使用方法

    ? ?打開之后,重啟樹莓派:sudo reboot ?輸入以下指令,可以使用樹莓派攝像頭的拍照功能:? 樹莓派拍攝照片保存到指定文件夾,下面的例子將照片保存在了/home/pi/httpHeadler/ 也可以通過system函數調用拍照命令。

    2024年02月14日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包