python利用opencv获取服务器上的图片

cv2.imdecode()函数从指定的内存缓存中读取数据,并把数据转换(解码)成图像格式;主要用于从网络传输数据中恢复出图像。
cv2.imencode()函数是将图片格式转换(编码)成流数据,赋值到内存缓存中;主要用于图像数据格式的压缩,方便网络传输。

 

# -*- coding: utf-8 -*-
# !/usr/bin/env python
# @Time    : 2018/12/10 14:59
# @Author  : xhh
# @Desc    : 
# @File    : index_features.py
# @Software: PyCharm
import cv2
import os
import numpy as np
import paramiko
import urllib

# 实例化一个transport对象
transport = paramiko.Transport(('填自己的服务器ip', 22))
# 建立连接
transport.connect(username='填自己的用户名', password='填自己的密码')
# 实例化一个 sftp对象,指定连接的通道
sftp = paramiko.SFTPClient.from_transport(transport)
data = sftp.listdir('babel_ncc/upload/image')
print data
for imagename in data:
    imagepath = os.path.join('http://127.0.0.1:9999/image/', imagename)
    print imagepath
    resp = urllib.urlopen(imagepath)
    image = np.asarray(bytearray(resp.read()), dtype="uint8")
    image = cv2.imdecode(image,cv2.IMREAD_COLOR)
    cv2.imshow('image', image)
    cv2.waitKey(0)
    print image

注意:

上面的代码可能有好多不足的地方, 有问题希望各位大佬能够多多提出。。。

 

为了走服务器上将图片拿下来,在网上找了好多好多资料。。。。。各种pip。。。尤其是opencv-python。。。各种折磨,对于我这种小白,,,真的很难过了。。。

 

不过对于上面的代码,我在进行图片显示的时候出现了: cannot connect to X server 这个错,,,现在还在继续解决中,,,en....先把之前的记下来,真的是老壳痛。问了度娘,说是cv2.imshow('image',image)惹到事,到底啥原因还没说,,所以在运行的时候把这个方法屏蔽了就可以了

 

参考:https://blog.csdn.net/dcrmg/article/details/79155233

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值