Menu
快讀
  • 旅遊
  • 生活
    • 美食
    • 寵物
    • 養生
    • 親子
  • 娛樂
    • 動漫
  • 時尚
  • 社會
  • 探索
  • 故事
  • 科技
  • 軍事
  • 国际
快讀

「樹莓派」安裝OpenCV以及實時視頻傳輸

2020 年 1 月 7 日 格物创意

「樹莓派」安裝OpenCV以及實時視頻傳輸

本功能基于opencv, numpy, zmq和base64這幾個庫來實現,將攝像頭采集到的畫面實時傳輸到其它地方,用于顯示圖像或交給上位機進行機器視覺處理。

「樹莓派」安裝OpenCV以及實時視頻傳輸

本教程中硬件主要用到

一台PC和一個安裝有攝像頭的樹莓派

實驗所用的代碼如下:

RPiCam:

#!/usr/bin/env/python3

# File name   : server.py

# Description : for FPV video and OpenCV functions

# Website : www.adeept.com

# Author  : William(Based on Adrian Rosebrock's OpenCV code on pyimagesearch.com)

# Date: 2019/11/21



import cv2

import zmq

import base64

import picamera

from picamera.array import PiRGBArray



IP = '192.168.3.11'



camera = picamera.PiCamera()

camera.resolution = (640, 480)

camera.framerate = 20

rawCapture = PiRGBArray(camera, size=(640, 480))



context = zmq.Context()

footage_socket = context.socket(zmq.PAIR)

footage_socket.connect('tcp://%s:5555'%IP)

print(IP)



for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):

frame_image = frame.array

encoded, buffer = cv2.imencode('.jpg', frame_image)

jpg_as_text = base64.b64encode(buffer)

footage_socket.send(jpg_as_text)

rawCapture.truncate(0)

PC:

#!/usr/bin/python3

# File name   : PC.py

# Author  : William

# Date: 2019/12/23



import cv2

import zmq

import base64

import numpy as np



context = zmq.Context()

footage_socket = context.socket(zmq.PAIR)

footage_socket.bind('tcp://*:5555')



while True:

frame = footage_socket.recv_string()

img = base64.b64decode(frame)

npimg = np.frombuffer(img, dtype=np.uint8)

source = cv2.imdecode(npimg, 1)

cv2.imshow("Stream", source)

cv2.waitKey(1)

相關文章:

  • DNS域名解析服務bind
  • 華爲都開始用Linux了,你還不來了解下全球第三大桌面操作系統?
  • ‘新加坡,圈美食!’天雨流芳,滋味好享,一網打盡新加坡網紅甜品店
  • Mock.js入門
  • 函數式編程:Ramda 函數庫參考教程
  • CentOS 7 上安裝 Node.js + PM2 + NGINX + Redis
科技

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

©2025 快讀 | 服務協議 | DMCA | 聯繫我們