【发布时间】:2021-11-03 03:07:57
【问题描述】:
我正在用 python 制作一个应用程序,允许人们共享他们的屏幕,但为了获得不错的帧速率,我想将图像压缩为灰度格式,然后在客户端将其转换回 RGB 图像.但是当我尝试这样做时,它仍然显示灰度图像。
然后我尝试使用 HSV 颜色转换,它确实显示了颜色,但由于某种原因使用了红色滤镜。
我不会显示所有代码,因为它至少有 2000 行,但我会显示我遇到问题的代码部分。
服务器端:
sct_img = sct.grab(bounding_box)
img_np = np.array(sct_img)
frame = img_np
frame = cv2.cvtColor(img_np, cv2.COLOR_BGR2GRAY)
frame = cv2.resize(frame, (0,0), fx = 0.70, fy = 0.70)
data = pickle.dumps(frame)
message_size = struct.pack("L", len(data))
clientsocket.sendall(message_size + data)
客户端:
frame = cv2.cvtColor(frame, cv2.COLOR_GRAY2BGR)
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
frame = cv2.resize(frame, (x, y))
cv2.imshow('frame', frame)
【问题讨论】:
-
查看如何创建minimal reproducible example。
-
你怎么知道是灰度的?
-
转灰度不丢弃颜色信息吗?
-
所以我知道它不是灰度,因为使用 cv2.COLOR_BRG2HSV 时显示颜色但带有红色滤镜,但是当我尝试显示没有 HSV 的图像时,它仍然是灰度
标签: python sockets networking pickle cv2