我知道这是一个初学者的问题,但我找不到任何关于它的资料,我正在写一个.py程序,用于将摄像机的输入(服务器端)传输到另一台电脑(客户端),我使用opencv,我可以很容易地从摄像机中读取数据并进行操作。
我正在写一个.py程序,用于将摄像机的输入(服务器端)传输到另一台PC(客户端),我使用opencv,我可以很容易地从摄像机中读取数据并进行操作。
def test():
img = start(0,0)#return a cv2 image elaborated and standard cv2 image color scale
return str(img)#send to the client the img in string format
客户端接收到的数据是正确的,我保存了服务器端的str(img)和客户端接收到的str,它们是一样的。
这是客户端的代码,问题出在客户端的最后一行,并给我这个错误。
txt = resp.text#get the text who's received back
txt = np.array(txt)#convert to a numpy array
#print(txt) #debug
cv2.imshow('image',txt)#show image
问题出在客户端的最后一行,并给了我这个错误。
类型错误。预期的Ptr< cv::UMat> 参数'mat'。
但是txt字符串是一个numpy数组,里面的数据和客户端完全一样(另外如果我在服务器端显示img就可以了),有什么建议吗?
PLEASE REALLY NEED HELP(求帮助)
(完整的代码。https:/github.comThomasAndreattaopencvServertreemaster。)
numpy数组的类型需要是 uint8
. 在 cv2.imshow(...)
txt = txt.astype(np.uint8)
您可以在显示变量之前使用 whos
. 此外,为了防止混淆,改变变量名称以反映类型的变化是明智的。