Matplotlibは、そのデータ可視化機能で知られる汎用性の高いPythonライブラリです。データのプロット以外にも、画像操作に優れており、画像に直接図形を重ねることができます。このチュートリアルでは、Matplotlibを使用して画像に効率的に長方形を追加する方法を説明します。
目次
Matplotlibでの長方形の描画
画像を扱う前に、標準的なMatplotlib図上に長方形を描く方法をマスターしましょう。この基礎的なステップは、画像のオーバーレイ処理を理解するために非常に重要です。
import matplotlib.pyplot as plt
import matplotlib.patches as patches
# 図と軸を作成
fig, ax = plt.subplots()
# 長方形を定義
rect = patches.Rectangle((0.1, 0.1), 0.5, 0.5, linewidth=1, edgecolor='r', facecolor='none')
# 軸に長方形を追加
ax.add_patch(rect)
# 軸の範囲を設定(オプション)
ax.set_xlim([0, 1])
ax.set_ylim([0, 1])
# プロットを表示
plt.show()
このコードは単純な長方形を生成します。詳しく見ていきましょう。
matplotlib.pyplot as plt
: Matplotlibプロットライブラリをインポートします。matplotlib.patches as patches
: 長方形などの図形オブジェクトを含むpatches
モジュールをインポートします。patches.Rectangle((x, y), width, height)
: 長方形を作成します。(x, y)
は左下の角座標を指定し、width
とheight
は寸法を定義します。座標は正規化されています(0〜1)。linewidth
、edgecolor
、facecolor
: 長方形の外観を制御します。facecolor='none'
はアウトラインのみを作成します。ax.add_patch(rect)
: 軸に長方形を追加します。ax.set_xlim()
とax.set_ylim()
: x軸とy軸の範囲を設定します(オプションで、より良い可視化のために)。
画像への長方形の重ね合わせ
次に、画像に長方形を重ね合わせてみましょう。Matplotlibのimread
を使用して画像を読み込みます。
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib.image as mpimg
# 画像を読み込む
img = mpimg.imread('your_image.jpg') # 画像のパスに置き換えてください
# 図と軸を作成
fig, ax = plt.subplots()
# 画像を表示
ax.imshow(img)
# 長方形を作成(ピクセル座標)
rect = patches.Rectangle((100, 100), 150, 100, linewidth=2, edgecolor='b', facecolor='none')
# 軸に長方形を追加
ax.add_patch(rect)
# プロットを表示
plt.show()
これは前の例に似ていますが、以下の点が異なります。
mpimg.imread('your_image.jpg')
: 画像を読み込みます。'your_image.jpg'
を画像のパスに置き換えることを忘れないでください。ax.imshow(img)
: 軸に画像を表示します。- 長方形の座標
(100, 100)
はピクセル座標です。長方形の位置を調整するには、これらの値を変更してください。
この方法により、画像を効果的に注釈付けることができます。座標、サイズ、色、線幅を試行錯誤して、長方形の外観と配置をカスタマイズしてください。座標は画像のピクセル寸法を基準としていることに注意してください。