#python #opencv #zipfile
#python #opencv #python-zipfile
Вопрос:
Я пытаюсь использовать OpenCV2 для чтения изображений в zip-файле с cv2.imread
, а затем изменять их размер и сохранять, но я не могу понять, как прочитать эти изображения в zip-файле. Пока это мой код:
import cv2
from zipfile import ZipFile
with ZipFile("sample_images.zip", "r") as zipFile:
imgs = zipFile.namelist()
img = zipFile.open(imgs[0])
processedImg = cv2.imread(img)
Это ошибка, которую я получаю:
Traceback (most recent call last):
File "C:/Users/Yash/Desktop/Programming/opencv test/test.py", line 8, in <module>
processedImg = cv2.imread(img)
SystemError: <built-in function imread> returned NULL without setting an error
Комментарии:
1.
img = zipFile.open(imgs[0])
предоставляет объект zipfile изображения, ноcv2.imread()
ожидает строку.
Ответ №1:
Попробуйте это
from io import BytesIO
from zipfile import ZipFile
from PIL import Image
with ZipFile("sample_images.zip", "r") as zipFile:
imgs = zipFile.namelist()
print(imgs[0])
img = zipFile.read(imgs[0])
processedImg = Image.open(BytesIO(img))
processedImg.show()