加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用python opencv从zip加载图像

发布时间:2020-12-20 12:23:59 所属栏目:Python 来源:网络整理
导读:我能够从zip成功加载图像: with zipfile.ZipFile('test.zip','r') as zfile: data = zfile.read('test.jpg') # how to open this using imread or imdecode? 问题是:如何在不保存图像的情况下使用imread或imdecode在opencv中进一步处理? 更新: 这是我得
我能够从zip成功加载图像:

with zipfile.ZipFile('test.zip','r') as zfile:
    data = zfile.read('test.jpg')
    # how to open this using imread or imdecode?

问题是:如何在不保存图像的情况下使用imread或imdecode在opencv中进一步处理?

更新:

这是我得到的预期错误.我需要将’data’转换为opencv可以使用的类型.

data = zfile.read('test.jpg')
buf = StringIO.StringIO(data)
im = cv2.imdecode(buf,cv2.IMREAD_GRAYSCALE)
# results in error: TypeError: buf is not a numpy array,neither a scalar

a = np.asarray(buf)
cv2.imdecode(a,cv2.IMREAD_GRAYSCALE)
# results in error: TypeError: buf data type = 17 is not supported

解决方法

使用 numpy.frombuffer()从字符串创建uint8数组:

import zipfile
import cv2
import numpy as np

with zipfile.ZipFile('test.zip','r') as zfile:
    data = zfile.read('test.jpg')

img = cv2.imdecode(np.frombuffer(data,np.uint8),1)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读