5

私はscikit-imageを使って画像を読み込んでいます:

img = skimage.io.imread(filename)

にいくつかの操作を行った後、別の関数に渡すためにimgメモリ内ファイル ( a la ) に保存したいのですが、ファイルハンドルではなくファイル名が必要なようです。StringIOskimage.io.imsave

imsave可能であれば、ディスクへのアクセス (その後に別のイメージング ライブラリからの読み取り)を避けたいと考えています。imsave(または他の scikit イメージに適した関数) を使用する良い方法はありStringIOますか?

4

1 に答える 1

6

更新: 2020-05-07

imageio画像の読み取りと書き込みにライブラリを使用することをお勧めします。また、Python 3 では、StringIO が BytesIO に変わります。

from io import BytesIO
import imageio

buf = BytesIO()
imageio.imwrite(buf, image, format='png')

scikit-image画像を numpy 配列として保存するため、次のようなパッケージを使用できますmatplotlib

import matplotlib.pyplot as plt
from StringIO import StringIO

s = StringIO()

plt.imsave(s, img)

これはデフォルトの動作として に追加する価値があるかもしれません。そのため、必要に応じてhttps://github.com/scikit-image/scikit-imageskimage.io.imsaveで問題を報告することもできます。

于 2013-04-23T08:59:08.837 に答える