树莓派的摄像头信息实时发送到PC端显示

简介: 树莓派的摄像头信息实时发送到PC端显示

要实现将树莓派的摄像头信息实时发送到PC端显示,可以使用Python的socket库。以下是一个简单的示例:
服务器端(树莓派):

  1. 安装必要的库:

pip install opencv-python
CopyCopy

  1. 创建一个名为 server.py 的文件,并添加以下代码:

import cv2
import socket

初始化摄像头

cap = cv2.VideoCapture(0)

创建socket

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('', 8080))
server_socket.listen(5)
print("服务器已启动,等待客户端连接...")
while True:

# 接收客户端连接
client_socket, client_address = server_socket.accept()
print(f"客户端 {client_address} 已连接")
while True:
    # 读取摄像头画面
    ret, frame = cap.read()
    # 将画面转换为字节流
    data = cv2.imencode('.jpg', frame)[1].tobytes()
    # 发送画面给客户端
    client_socket.sendall(data)
    # 接收客户端确认信息
    acknowledgment = client_socket.recv(1024)
    if not acknowledgment:
        break
# 关闭连接
client_socket.close()
print(f"客户端 {client_address} 已断开")

释放摄像头资源

cap.release()
server_socket.close()
CopyCopy

  1. 运行服务器端代码:

python server.py
CopyCopy

客户端(PC端):

  1. 安装必要的库:

pip install opencv-python
CopyCopy

  1. 创建一个名为 client.py 的文件,并添加以下代码:

import cv2
import socket

创建socket

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('192.168.1.100', 8080))
print("已连接到服务器")
while True:

# 接收服务器发送的画面
data = client_socket.recv(1024)
if not data:
    break
# 解码画面
frame = cv2.imdecode(data, cv2.IMREAD_COLOR)
# 显示画面
cv2.imshow('frame', frame)
# 按键控制是否继续接收画面
if cv2.waitKey(1) == ord('q'):
    break

关闭所有窗口

cv2.destroyAllWindows()

关闭socket连接

client_socket.close()
CopyCopy

  1. 运行客户端代码:

python client.py
CopyCopy

注意:请将server.py中的server_socket.bind(('', 8080))中的IP地址更改为树莓派实际的IP地址。如果不知道树莓派的IP地址,可以使用ifconfig命令查看。
这样,树莓派的摄像头信息就可以实时发送到PC端显示了。

目录
相关文章
|
7月前
|
数据采集 Android开发 开发者
Android平台GB28181设备接入模块摄像头采集方向不对怎么办?
我们在做Android平台GB28181设备接入模块的时候,有开发者提到这样的诉求:他们的智能头盔、执法记录仪等设备,采集到的图像,是旋转了90、180甚至270°的,设备本身无法针对图像做翻转或者旋转操作,问我们这种情况下需要如何处理?
|
传感器 Ubuntu Java
ESP-IDF 蓝牙开发实战 — 传感器数据上传及手机控制开发板
ESP32-C3 蓝牙部分我们学习了GATT,本文博主手把手带领大家使用 ESP32-C3的蓝牙做一个简单的小应用。
773 0
ESP-IDF 蓝牙开发实战 — 传感器数据上传及手机控制开发板
|
移动开发
QT串口助手(实现数据的收发功能)
QT串口助手(实现数据的收发功能)
414 0
|
小程序 物联网 API
微信小程序使用蓝牙通信协议连接硬件整理总结(初始化蓝牙、搜索设备、展示设备)
微信小程序使用蓝牙通信协议连接硬件整理总结(初始化蓝牙、搜索设备、展示设备)
1228 0
微信小程序使用蓝牙通信协议连接硬件整理总结(初始化蓝牙、搜索设备、展示设备)
|
编解码 算法 安全
蓝牙通讯数据传输,蓝牙UUID,BluetoothAdapter;adb input 模拟系统输入,adb logcat:抓包,抓日志,蓝牙通讯,adb命令实现
蓝牙通讯数据传输,蓝牙UUID,BluetoothAdapter;adb input 模拟系统输入,adb logcat:抓包,抓日志,蓝牙通讯,adb命令实现
324 0
|
数据格式
基于单片机的温度远程采集显示(RS485通信)
基于单片机的温度远程采集显示(RS485通信)
145 0
基于单片机的温度远程采集显示(RS485通信)
|
移动开发 监控 算法
5_1_3_HaaS 首页信息屏_网络状态_网络对时|学习笔记
快速学习5_1_3_HaaS 首页信息屏_网络状态_网络对时。
132 0
5_1_3_HaaS 首页信息屏_网络状态_网络对时|学习笔记
【C#】【FFmpeg】获取电脑可用音视频设备并输出到下拉列表框
【C#】【FFmpeg】获取电脑可用音视频设备并输出到下拉列表框
238 0
【C#】【FFmpeg】获取电脑可用音视频设备并输出到下拉列表框
|
物联网 API
设备端和服务端检测设备是否在线的方法
使用物联网时,有时设备端和服务端都需要检测设备是否在线。
1056 0
接收PC端的信息控制LED灯(查询法)
接收PC端的信息控制LED灯(查询法) 宏定义 初始化 主函数