2017-05-29 6 views
0

あるサイズにサイズ変更したい画像のリストがあります。scipy imresizeで画像のリストをサイズ変更

私はこのためにscipyのダウンロードのimresize機能を使用したいと期待通りに動作していない次のコードを得た:

imgs = get_imgs() 
for img in imgs: 
    img = imresize(img, (82, 100)) 

私はIMGS配列の形状をプリントアウトした場合、それはまだオリジナルですサイズ(178,218)。なぜこれが機能していないのか、誰かが説明できますか?

残念ながら、私はこの機能で画像のリストのサイズを変更する他の質問は見つかりませんでした。

答えて

1

img変数はforループでのみ有効です。 ループの後にimresize関数の結果が失われます。

結果を使って新しいリストを作成する必要があります。

imgs = get_imgs() 
res = [] 
for img in imgs: 
    res.append(imresize(img, (82, 100))) 

行うpytonic方法があるマップを使用することです:

res = map(lambda img : imresize(img, (82, 100), get_imgs()) 
+0

あなたは右のres = []を意味?それ以外の場合は、appendコマンドでエラーが発生します。 説明をありがとう!リスト内の画像をサイズ変更された画像に置き換えるのは普通のケースだと思っていました。または、atplace = pandasのようなTrue/Falseというパラメータを少なくともatleastに持つこと。 – TheDude

+0

@TheDuDudeはい、[]。ループ内の の場合、imgは現在の要素へのポインタに過ぎません。 これはリスト内のポインタではありません。 imgs [i]はリスト内のポインタですが、for文の動作方法ではありません。 – Setop

関連する問題