2016-10-22 7 views
0

3つのグレースケール値を含む.pngイメージがあります。これは、黒(0)、白(255)および灰色(128)の塊を含む。私はこれらの3つのグレースケール値だけを保存しながら、このイメージのサイズを小さくする必要があります。特定のグレースケール値を保存したまま、サイズを変更してPythonでイメージを作成するには?

現在、私はscipy.misc.imresizeを使用していますが、サイズを小さくするとエッジがぼやけて、3つ以上のグレースケール値が含まれていることに気付きました。

誰でもこのことを行う方法を知っていますか?

答えて

5

interpキーワード引数注意:

interp : str, optional 
    Interpolation to use for re-sizing 
    (‘nearest’, ‘lanczos’, ‘bilinear’, ‘bicubic’ or ‘cubic’). 

デフォルトはbilinearフィルタリングです。 nearestに切り替えると、最も近い既存のピクセルの正確な色が使用され、正確なグレースケール値が線形補間するのではなく保存されます。

1

私はPIL.Image.resizeがあなたの望むものとまったく同じだと信じています。 docsをご覧ください。

基本的には何が必要です:

from PIL import Image 
im = Image.open('old.png') 
# The Image.NEAREST is the default, I'm just being explicit 
im = im.resize((im.size[0]/2, im.size[1]/2), Image.NEAREST) 
im.save('new.png') 

は実際にはかなりscipy.misc.imresize とそのdocsを見てみましょうことを行うことができます。

interpパラメータは必要なものです。 nearestに設定すると、画像の色には影響しません。 the docs for imresizeから

関連する問題