一. 前言
本文主要实现了远程开发板摄像头画面实时传输回本地电脑进而达到视频监控功能。主要分为开发板客户端和电脑服务端的两部分代码讲解。
本文使用的是米尔的Remi Pi开发板,摄像头是米尔配套的MY-CAM003M,开发板Python环境为3.8,电脑Python3.9
效果展示如下:
电脑端画面显示
OpenCV远程监控
按下k键图片保存在本地
二. 代码展示
1. 开发板客户端代码
import socket
import struct
import time
import traceback
import cv2
import numpy as np
class Client(object):
"""客户端"""
def __init__(self, addr_port=('192.168.43.242', 11000)):
# 连接的服务器的地址
self.addr_port = addr_port
# 创建套接字
self.client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 地址端口可以复用
self.client.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# 分辨率
self.resolution = (320, 240)
def connect(self):
"""链接服务器"""
try:
self.client.connect(self.addr_port)
print('连接服务器成功')
return True
except Exception as e:
traceback.print_exc() # 打印原始的异常信息
print('连接失败')
return False
def send2server(self, fps=60):
"""读摄像头数据 发送给服务器"""
camera = cv2.VideoCapture('/dev/video0