PythonとMatplotlibで正方形の画像を256個の大きなピクセルにピクセル化する方法
概要
Pythonを使って正方形の画像を「256個の大きなピクセル」、つまり16×16ピクセルのドット絵風にピクセル化する方法を紹介します。ピクセル化とは、画像を粗いドットに分解することで、レトロゲームのような独特の質感を作り出す画像処理です。PIL(Pillow)とMatplotlibを組み合わせれば、わずか数行のコードで実現できます。
処理の手順
正方形の画像を256個の大きなピクセルにピクセル化するには、以下の手順に従います。
- 図のサイズを設定し、サブプロット間および周囲のパディング(余白)を調整します。
- 対象となる画像ファイルを開いて読み込みます。
- 画像を小さなサイズ(例:16×16)にリサイズし、ピクセル数を減らします。
- 縮小した画像を元のサイズに拡大し直し、結果の画像を生成します。
- 結果の画像を保存します。
サンプルコード
from PIL import Image
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
img = Image.open("bird.png")
imgSmall = img.resize((16, 16), resample=Image.BILINEAR)
result = imgSmall.resize(img.size, Image.NEAREST)
result.save('result.png')コードの解説
このコードのポイントは2段階のリサイズ処理にあります。
まず、Image.BILINEAR(バイリニア補間)を使って画像を16×16ピクセルへ縮小します。これにより、元の画像の色情報が16×16=256個のピクセルに集約されます。
次に、Image.NEAREST(最近傍法)を使って元のサイズに拡大します。最近傍法は補間を行わないため、各ピクセルがそのまま大きな四角いブロックとして表示され、典型的なピクセルアート(ドット絵)風の仕上がりになります。
入力画像


出力画像


まとめ
PILのresize()メソッドと補間方式の組み合わせを変えるだけで、誰でも簡単に画像をピクセル化できます。より細かいピクセル表現にしたい場合は、(16, 16)の部分を(32, 32)など任意のサイズに変更してください。逆にもっと粗くしたい場合は、(8, 8)のように数値を小さくすると効果的です。
-
Matplotlibを使ってPythonで3D密度マップを描画する方法を徹底解説
MatplotlibとNumPyを組み合わせると、Pythonで簡単に3D密度マップ(濃度分布図)を作成できます。本記事では、pcolormesh()メソッドを使って擬似カラープロットとして密度マップを可視化する具体的な手順を、サンプルコード付きでわかりやすく解説します。 3D密度マップを描画する基本の手順 NumPyでデータを生成する:side、x、y、zの各データをNumPyで作成します。特にlinspace関数を使うと、指定した2点間の範囲を任意の分割数で等間隔にデータ生成できるため便利です。 座標行列を作成する:sideデータをもとにmeshgrid()を使い、座標ベクトルから2次元
-
Python Matplotlibで円グラフの一部を強調表示して描画する方法
はじめに あなたが最も好きなグラフの種類は何ですか?経営層やビジネスアナリストにこの質問をすると、即座に「円グラフ(パイチャート)!」と答えられるほど、円グラフは割合を視覚的に表現するための最も一般的な手法のひとつです。 この記事では、PythonのMatplotlibを使って基本的な円グラフを描く方法から、explodeパラメータで特定のセクターを強調表示するテクニック、さらにパーセンテージではなく実際の値をラベルとして表示するカスタム関数の実装まで、段階的に解説します。 基本的な円グラフの作成手順 ステップ1:Matplotlibのインストール まず、以下のコマンドでMatplotlibを