Python ssh 读取图像

Python ssh read image

我正在使用 Python 2.7 和 OpenCV 2.4。我想读取并显示来自远程机器的图像。然后,我尝试使用库 paramiko。但是,我无法读取文件。

这是我的代码。首先,我导入所有库并设置连接:

import paramiko
import cv2
s = paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect("XXX.XXX.XXX",22,username="NAME",password='PW',timeout=4)

其次,我打开一个 SFTP 会话并打开目标图像:

sftp = s.open_sftp()
remote_file = sftp.open('/home/frame/image.jpg')

我尝试打印 remote_file : print remote_file

它returns**paramiko.sftp_file.SFTPFile object at 0x000000000572AC50**

最后,我尝试读取并显示图像:

img = cv2.imread(remote_file)
cv2.imshow("image", img)

但是,出现错误:

  File "ssh.py", line 25, in <module>
    img = cv2.imread(remote_file)
TypeError: expected string or Unicode object, SFTPFile found

_________________________________________________________________________-

我正在寻求帮助如何从另一台远程机器读取图像。我的做法是否正确?谢谢。

这里有一个解决方案:

import numpy as np

...

sftp = s.open_sftp()
with sftp.open('/home/frame/image.jpg') as f:
  img = cv2.imdecode(np.fromstring(f.read(), np.uint8), 1)

cv2.imshow("image", img)
cv2.waitKey(0)