はじめに
scikit-imageのtransformモジュールには、画像のサイズ変更や形状変更を行うための様々な関数が用意されています。この記事では、主に以下の関数について解説します:
- rescale:画像を指定した比率でリサイズする
- resize:画像を指定したサイズに変更する
- downscale_local_mean:局所平均を用いて画像をダウンスケールする
これらの関数を使い分けることで、目的に応じた適切な画像サイズ変更を実現できます。
コード

解説
モジュールのインポート
画像データの読み込み、グレースケール化
rgb2grayにより、RGB画像をグレースケールに変換します。
画像のサイズ変更(rescale)
画像を所定の倍率で拡大または縮小します。この例では第2引数に1.0 / 4.0を指定しているため、画像サイズが元の0.25倍になります。anti_aliasing=Falseを設定すると、アンチエイリアス処理が適用されないため、画像にギザギザが目立つようになります。
アンチエイリアス処理とは、画像のエッジや曲線部分のギザギザ(ジャギー)を滑らかに見せるための技術です。画像サイズを変更する際に適用され、ピクセル間の色を補間することで、より自然な見た目を実現します。
画像の形状変更(resize)
第2引数に(image.shape[0] / 4, image.shape[1] / 4)とサイズを直接指定します。resizeは縦横比を自由に変更できるという特徴があります。また、anti_aliasing=Trueを設定すると、アンチエイリアス処理が適用され、より滑らかな画像が得られます。
局所平均化によるサイズ変更(downscale_local_mean)
第2引数は、各軸に沿ってダウンスケールする際の整数の配列です。例えば(4,3)と指定すると、縦のサイズが1/4、横のサイズが1/3になります。
すべての画像を表示
ax.ravel()を使用することで、axの形状が(2,2)から(4,)に変換されます。これにより、左上のax[0]にはオリジナル画像、右上のax[1]にはrescaleした画像、左下のax[2]にはresizeした画像、右下のax[3]にはdownscale_local_meanした画像がそれぞれ表示されます。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)まとめ
scikit-imageのtransformモジュールを使用することで、様々な方法で画像のサイズ変更が可能です。rescaleは比率による変更、resizeは目標サイズへの変更、downscale_local_meanは局所平均を使用したダウンスケーリングを提供します。それぞれの関数は異なるユースケースに適しており、画像処理タスクに応じて適切な関数を選択することが重要です。
コメント