[英]Python simplecv toString() back to image
当我将图像从服务器发送到套接字(使用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已终止异常方式
这可能是由于传输时数据丢失引起的吗? 还是我在接收数据时使用了太大的缓冲区数?
数据包大小可能太大。 我将创建一个非常小的图像,并验证它是否已设置为类似以下内容:
img = Image((5,5))
这将产生5 x 5的黑色图像。您还可以执行img.invert()来查看它是否变为完全白色。 我还将在.NET IDE的sock.recv()处设置一个断点,然后手动尝试查看套接字缓冲区以验证字符串是否匹配,然后再尝试将其投射到Image中,或者如果不能断点而不是cout >>到文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.