はじめに
画像処理において、特定の部分だけをモザイク(低解像度化)する技術は、プライバシー保護や視覚効果の作成などで重要です。本記事では、scikit-imageライブラリのpyramid_gaussianとrescale関数を使用して、画像の一部分のみを低解像度化する方法を解説します。これらの関数を使うことで、画像のダウンサンプリングとアップサンプリングを制御し、モザイク効果を実現できます。
コード

解説
モジュールのインポート
画像の読み込み
パロディア属の紅小町を用います。画像のサイズは1024 x 1024となっています。

低解像度画像の生成
pyramid_gaussianにより、低解像度の画像を生成します。pyramid_gaussianについては下記で解説しました。

低解像度化した画像を表示すると下記のようになります。

低解像度画像のサイズ変更
rescale関数を使って画像を元画像の大きさまで拡大します。この例ではpyramid[5](上図左下の32 x 32の画像)を2の5乗(32倍)に拡大しています。order=0を指定することでスプライン補完を行わず、各画素をそのまま拡大できます。rescaleした画像はfloat形式(0〜1)となるため、img_as_ubyteを使って0〜255の値に変換します。
画像の一部の低解像度化
指定した領域(im5[100:800,300:730,:])を、あらかじめ低解像度化した画像(image_rescaled_5[100:800,300:730,:])で置き換えます。
結果の表示
左から順に元画像、低解像度画像、サボテンの部分のみを低解像度にした画像となります。

低解像度化のレベルを変えて表示

まとめ
scikit-imageのpyramid_gaussianとrescale関数を使用することで、画像の特定部分だけを効果的にモザイク処理できることを紹介しました。この技術はプライバシー保護や特殊視覚効果の作成に役立ちます。画像のダウンサンプリングとアップサンプリングを組み合わせることで、任意の領域の解像度を下げることができ、様々な用途に応用可能です。
コメント