2013-04-23 2 views
0

Я использую scikit-image читать изображения:scikit-изображение сохранить изображение в виде байтовой строки

img = skimage.io.imread(filename) 

После выполнения некоторых манипуляций img, я хотел бы сохранить его в файл в памяти (а la StringIO), чтобы перейти к другой функции, но похоже, что skimage.io.imsave требует имя файла, а не дескриптор файла.

Я хотел бы избежать попадания на диск (imsave, за которым следует чтение из другой библиотеки изображений), если это вообще возможно. Есть ли хороший способ получить imsave (или какую-нибудь другую функцию для работы с scikit-изображениями) для работы с StringIO?

ответ

1

scikit-image сохраняет изображения в качестве Numpy массивов, поэтому вы можете использовать пакет, таких как matplotlib сделать так:

import matplotlib.pyplot as plt 
from StringIO import StringIO 

s = StringIO() 

plt.imsave(s, img) 

Это может быть стоит добавить, как поведение по умолчанию для skimage.io.imsave, так что если вы хотите, вы можете также подать выпуск на https://github.com/scikit-image/scikit-image.

+0

Спасибо, Стефан! Я создал проблему здесь: https://github.com/scikit-image/scikit-image/issues/533 –

Смежные вопросы