麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Python > 正文

Python樹莓派學習筆記之UDP傳輸視頻幀操作詳解

2024-09-09 19:02:38
字體:
來源:轉載
供稿:網友

本文實例講述了Python樹莓派學習筆記之UDP傳輸視頻幀操作。分享給大家供大家參考,具體如下:

因為我在自己筆記本電腦上沒能成功安裝OpenCV-Contrib模塊,因此不能使用人臉識別等高級功能,不過已經在樹莓派上安裝成功了,所以我想實現把樹莓派上采集的視頻幀傳輸到PC的功能,這樣可以省去給樹莓派配顯示屏的麻煩,而且以后可能可以用在遠程監控上。

1 UDP還是TCP

首先考慮用哪種傳輸方式,平常TCP用的非常多,但是像視頻幀這種數據用TCP不是太合適,因為視頻數據的傳輸最先要考慮的是速度而不是準確性,視頻幀的數據量很大,幀間隔也非常短,需要盡量保證傳輸速度,同時丟失一些數據是無所謂的。TCP需要維護連接、保證數據包正確,會耗費一些時間,因此應該使用UDP,就像所有參考書上說的,UDP不在乎是否建立連接,也不管數據是否能被準確接收,只關心能否把數據發送出去而已。

在Python的socket代碼中也可直觀地看到UDP的特點,對于發送方,我們通過server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)創建UDP套接字對象,然后執行server.connect((HOST,PORT)) 指定發送方地址,但其實connect函數直接就返回了,不像TCP中的客戶端會等待連接成功,接著就可直接在套接字對象上調用send函數發送數據了,這個過程根本沒確立連接。

2 圖像傳輸中的編解碼

但是用UDP傳輸圖像有一個很關鍵的問題需要考慮,就是圖像的大小。根據UDP協議,單個包的數據大小最大只能65507個字節(去掉包頭),而一般直接從攝像頭采集的圖像幀的大小比這個數要大得多,以我的邏輯C270為例,單幅圖像的大小為480X640X3個字節,遠大于65507,因此一個包是沒法發送完的。解決方法有兩種,一種是把圖像拆成幾次進行發送,相應的接收端用個循環多次接收,這種方法可以完整地接收數據,但是速度肯定受到影響,而且可能要添加一些自定義規則,徒增麻煩;另一種方法就是發送前先對圖像進行編碼壓縮,接收后再解碼,清晰度會有所下降,但是可以保持速度上的優勢,這種方式比較合適。

OpenCV中的imencode和imdecode方法可分別用于圖像的編碼和解碼。imencode根據指定的標識將圖像數據編碼并存入緩存區,函數原型為cv2.imencode(ext, img[, params]) → retval, buf,ext為文件擴展名,指定了存儲格式,如'.jpg';img為需要編碼的圖像數據; params為指定的編碼標識,其形式為paramId_1, paramValue_1, paramId_2, paramValue_2, ... ,對于jpg格式,可以指定標識為CV_IMWRITE_JPEG_QUALITY ,其對應的值在0到100之間,表示了壓縮質量,值越大壓縮率越大,編碼后的數據量越小,但解碼后的圖像質量也越差。

imdecode從緩存區讀取圖像數據,通過指定標識,可以實現指定的解碼格式。imdecode的函數原型為cv2.imdecode(buf, flags) → retval ,其中flags指定圖像的讀取類型,實際上就是指定了以多少深度多少通道讀取圖像,比如CV_LOAD_IMAGE_ANYDEPTH(即整數2)表示單個通道,深度不變的灰度圖;CV_LOAD_IMAGE_COLOR(即整數1)表示3通道、8位深度的彩色圖。

3 樹莓派程序

結合套接字對象和編解碼函數,就可以編寫發送端的代碼了,不過還有一個需要注意的地方是發送和接收的數據格式問題,套接字的發送和接收都是字節流,或者說是byte數組,發送數據時需要以字節流格式發送,接收數據后需要把字節流類型轉換成合適的數據類型。

從攝像頭獲取的圖像是480X640X3的numpy.ndarray類型,通過imencode編碼,得到?X1的numpy.ndarray對象,經測試,這個對象可以直接發送出去;在接收端,獲得的是byte數組,這個數組直接做imdecode的參數會報錯,經調試,發現還需要把數組轉換成numpy.ndarray類型。樹莓派作為發送端,其Python代碼如下:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久久久久黄色片 | 亚洲一区二区中文 | 26uuu成人人网图片 | 黄色片网站免费 | 在线成人免费观看www | 久久亚洲成人 | 欧美成年人在线视频 | 久久久久一区 | 片在线观看 | 蝌蚪久久窝 | 日韩99 | 七首小情歌泰剧在线播放 | 黄色网址免费在线 | 国产成人精品免费视频大全办公室 | 久久久成人动漫 | 久久久av亚洲男天堂 | 在线 日本 制服 中文 欧美 | 精品亚洲一区二区 | 天天草天天干天天射 | 久久精品一区二区三区不卡牛牛 | 九九热九九热 | 成人做爰高潮片免费视频美国 | 精品一区二区久久久久久按摩 | 美女黄网站免费观看 | 欧美3p激情一区二区三区猛视频 | 国产一级毛片国产 | 欧美一级黄色影院 | 免费香蕉成视频成人网 | 中文字幕精品在线视频 | 91精品国产综合久久久动漫日韩 | 免费小毛片 | 亚州精品天堂中文字幕 | 一级免费黄视频 | 久久国产午夜 | 国产亚洲精品久久久久久久久久 | 羞羞答答www网站进入 | 性日本xxx | 成人综合一区二区 | 91精品国产乱码久久久久久久久 | 久久久久久久久久久久久久av | 国产精品久久久久久久午夜片 |