import socket
import struct
import numpy as np
import cv2
bufSize = 1024
client = None
HOST = "127.0.0.1"
PORT = 9999
img = None
cv2.namedWindow("Main")
def run():
global client, img
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((HOST, PORT))
length = client.recv(4)
le = struct.unpack(">I", length)[0]
imb = b''
while le > bufSize:
t = client.recv(bufSize)
imb += t
le -= len(t)
while le > 0:
t = client.recv(le)
imb += t
le -= len(t)
data = np.frombuffer(imb, dtype=np.uint8)
img = cv2.imencode(data, cv2.IMREAD_COLOR)
while True:
cv2.imshow("Main", cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
length = client.recv(4)
le = struct.unpack(">I", length)[0]
imb = b''
while le > bufSize:
t = client.recv(bufSize)
imb += t
le -= len(t)
while le > 0:
t = client.recv(le)
imb += t
le -= len(t)
data = np.frombuffer(imb, dtype=np.uint8)
ims = cv2.imencode(data, cv2.IMREAD_COLOR)
img = img + ims
cv2.waitKey(90)
run()
![](https://profile-avatar.csdnimg.cn/254eb8da8d444683aa4a40d711bf1b35_mityuxuan.jpg!4)
type 'numpy.ndarray' to 'str' for 'ext'
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注
- 将
cv2.imencode(data, cv2.IMREAD_COLOR)
修改为cv2.imdecode(data, cv2.IMREAD_COLOR)
,以便正确解码图像数据。 - 将
ims = cv2.imencode(data, cv2.IMREAD_COLOR)
修改为ims = cv2.imdecode(data, cv2.IMREAD_COLOR)
,以便正确解码接收到的图像数据。
修改后的代码如下所示:
import socket import struct import numpy as np import cv2 bufSize = 1024 client = None HOST = "127.0.0.1" PORT = 9999 img = None cv2.namedWindow("Main") def run(): global client, img client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.connect((HOST, PORT)) length = client.recv(4) le = struct.unpack(">I", length)[0] imb = b'' while le > bufSize: t = client.recv(bufSize) imb += t le -= len(t) while le > 0: t = client.recv(le) imb += t le -= len(t) data = np.frombuffer(imb, dtype=np.uint8) img = cv2.imdecode(data, cv2.IMREAD_COLOR) while True: cv2.imshow("Main", cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) length = client.recv(4) le = struct.unpack(">I", length)[0] imb = b'' while le > bufSize: t = client.recv(bufSize) imb += t le -= len(t) while le > 0: t = client.recv(le) imb += t le -= len(t) data = np.frombuffer(imb, dtype=np.uint8) ims = cv2.imdecode(data, cv2.IMREAD_COLOR) img = img + ims cv2.waitKey(90) run()
解决 无用评论 打赏 举报- 将
悬赏问题
- ¥15 deepin系统下挂载nas硬盘失败有知道后续命令和步骤的吗?
- ¥15 寻找爱立信moshell 18.0 有偿
- ¥15 找个代做火山图,富集分析和ppi的,有偿
- ¥15 通过摄像头实现云录制功能
- ¥15 LTspice中为什么同一个波形图,调整坐标轴后平均值变了
- ¥15 深度学习CNN回归优化
- ¥25 多设备数据融合显示控制
- ¥15 需要给视屏加rgb多种颜色光下图这个软件 不是要什么代码看懂在评论
- ¥100 Qt编程中数据模型应用问题
- ¥15 那个软件可以给视屏加rgb这个氛围光 给视屏加不是图片 给视频加这种光rgb的 有这种的手机端或者电脑端 电脑端最好