【发布时间】:2023-03-03 15:21:01
【问题描述】:
当我将转换为字符串的图像(使用 simplecv 方法 toString())从服务器发送到套接字时出现问题,我无法将其转换回图像。
[编辑] 根据注释添加代码
但是,我需要尽快将我的屏幕“流式传输”给客户。如果我走错方向,请纠正我。
我尝试了以下(客户端):
while 1:
x = sock.recv(4096)
y = sock.recv(4096)
imgSize = (int(x),int(y))
img = sock.recv(429467296)
try:
if img != None:
bmp = cv.CreateImageHeader(imgSize, cv.IPL_DEPTH_8U, 3)
cv.SetData(bmp,img)
cv.CvtColor(bmp,bmp, cv.CV_RGB2BGR)
screenImg = Image(bmp)
img = None
screenImg.show()
except:
print 'Error with image'
主持人:
while 1:
screenImg = sc.getImage()
screenImg = screenImg.scale(0.5)
string = screenImg.toString()
client.sendall(str(screenImg.size()[0]))
client.sendall(str(screenImg.size()[1]))
client.sendall(string)
但我收到 Microsoft Visual C++ 运行时库错误,提示 pythonw.exe 以异常方式终止
这可能是由于传输时数据丢失造成的吗?还是我在接收数据时使用了太大的缓冲区数?
【问题讨论】:
-
也许您可以尝试查找有关 Python 运行时终止原因的更多信息?尝试捕获异常 - 还是内存不足?
-
你能尝试发布一个完整的最小工作示例代码吗?也许问题可能出在系统的某个不相关部分,因为您发布的代码片段对我来说看起来不错。
-
是的,可能是因为我尝试一次发送太多数据?
标签: python sockets opencv python-2.7 simplecv