gpt4 book ai didi

python-2.7 - 在 python 中流式传输视频使用 pygame lib

转载 作者:行者123 更新时间:2023-12-05 06:44:45 25 4
gpt4 key购买 nike

我在 python 中使用库 pygame 将视频从 RasberryPi 的网络摄像头流式传输到我的计算机。但是我在接收图像时遇到了问题。它不是转换真实图像。我用占位符替换了摄像头的 IP 地址 <my_ip> .这是我的代码:

服务器:

import socket,os
from PIL import *
import pygame,sys
import pygame.camera
from pygame.locals import *

#Create server:
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((<my_ip>,5000))
server.listen(5)

#Start Pygame
pygame.init()
pygame.camera.init()

screen = pygame.display.set_mode((320,240))

cam = pygame.camera.Camera("/dev/video0",(320,240),"RGB")
cam.start()

#Send data
while True:
s,add = server.accept()
print "Connected from",add
image = cam.get_image()
screen.blit(image,(0,0))
data = cam.get_raw()
s.sendall(data)
pygame.display.update()

#Interupt
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()

客户:

import socket,sys
import pygame
from PIL import Image

#Create a var for storing an IP address:
ip = <my_ip>

#Start PyGame:
pygame.init()
screen = pygame.display.set_mode((320,240))
pygame.display.set_caption('Remote Webcam Viewer')
font = pygame.font.SysFont("Arial",14)
clock = pygame.time.Clock()
timer = 0
previousImage = ""
image = ""

#Main program loop:
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()

#Receive data
if timer < 1:
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((str(ip),5000))
data = client_socket.recv(1024000)
timer = 30

else:
timer -= 1
previousImage = image

#Convert image
try:
image = Image.fromstring("RGB",(120,90),data)
image = image.resize((320,240))
image = pygame.image.frombuffer(image.tostring(),(320,240),"RGB")

#Interupt
except:
image = previousImage
output = image
screen.blit(output,(0,0))
clock.tick(60)
pygame.display.flip()

但这是转移后的结果:

Image

最佳答案

您正在根据收到的原始数据重新组装图像,但由于您发送的是正在重新创建的更大分辨率,因此像素“溢出”产生了这种效果。

违规行是:

image = Image.fromstring("RGB",(120,90),data)

应该是:

image = Image.fromstring("RGB",(320,240),data)

*未测试但应该可以。

关于python-2.7 - 在 python 中流式传输视频使用 pygame lib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27676637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com