Matplotlibで画像を表示する方法を徹底解説!基礎から応用まで

※本サイトにはプロモーション・広告が含まれています。

(最終更新月: 2024年1月)

✔こんな方におすすめの記事です

「Pythonで画像を表示する方法がわからない」
「Matplotlibでの画像表示の基本を学びたい」
「画像の加工や複数表示など、応用的な使い方を知りたい」

✔当記事を通じて得られること

  • Matplotlibを使った画像表示の基本的な方法
  • 画像の読み込みから表示までの具体的な手順
  • 画像の加工や複数表示などの応用テクニック

当記事では、Matplotlibによる画像表示の基礎から応用まで、実例を交えて詳しく解説していきます。
ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

Matplotlibとは

Matplotlibは、Pythonで使用できる強力なグラフ描画ライブラリです。
データの可視化だけでなく、画像の表示や加工にも優れた機能を持っています。

  • Matplotlibの概要と特徴
  • インストール方法
  • 基本的な使い方

Matplotlibの概要と特徴

Matplotlibは、Pythonで最も広く使われている可視化ライブラリの1つです。
グラフ作成だけでなく、画像処理の分野でも重宝されています。
以下のような特徴があります。

  • 豊富な描画機能
  • 直感的な操作性
  • 高い柔軟性と拡張性

インストール方法

Matplotlibのインストールは、pipコマンドで簡単に行えます。
以下のコマンドをターミナルで実行してください。

pip install matplotlib

インストールが完了したら、以下のコードで動作確認ができます。

import matplotlib.pyplot as plt
print(plt.__version__)

基本的な使い方

Matplotlibの基本的な使い方は非常にシンプルです。
主にpyplotモジュールを使用して操作を行います。
以下は基本的なインポート方法です。

import matplotlib.pyplot as plt
import numpy as np

画像の読み込み方法

画像を表示するためには、まず画像データを読み込む必要があります。
Matplotlibには、複数の画像読み込み方法が用意されています。

  • 画像ファイルの直接読み込み
  • NumPy配列としての読み込み
  • URLからの読み込み

画像ファイルの直接読み込み

画像ファイルを直接読み込むには、plt.imreadを使用します。
以下のコードで、ローカルの画像ファイルを読み込むことができます。

img = plt.imread('sample.png')

注意点として、対応している画像形式は、PNG、JPEG、TIFF、PPMなどです。

NumPy配列としての読み込み

画像データはNumPy配列として扱うこともできます。
以下のように、PILライブラリを併用する方法もあります。

from PIL import Image
import numpy as np

img = Image.open('sample.png')
img_array = np.array(img)

URLからの読み込み

インターネット上の画像も直接読み込むことができます。
urllib.requestを使用して以下のように実装します。

import urllib.request

url = "https://example.com/image.jpg"
urllib.request.urlretrieve(url, "downloaded_image.jpg")
img = plt.imread("downloaded_image.jpg")

基本的な画像表示方法

画像を読み込んだら、次は表示方法について学びましょう。
Matplotlibには、様々な表示オプションが用意されています。

  • 基本的な表示方法
  • タイトルと軸ラベルの設定
  • 画像サイズの調整

基本的な表示方法

画像を表示するための最も基本的な方法を説明します。
plt.imshowを使用して、読み込んだ画像を表示できます。

import matplotlib.pyplot as plt

img = plt.imread('sample.png')
plt.imshow(img)
plt.show()

タイトルと軸ラベルの設定

画像に説明的な要素を追加することができます。
以下のコードで、タイトルや軸ラベルを設定できます。

plt.imshow(img)
plt.title('サンプル画像')
plt.xlabel('X軸')
plt.ylabel('Y軸')
plt.show()

画像サイズの調整

表示する画像のサイズは自由に調整できます。
figureサイズやdpiを設定することで、表示サイズを制御できます。

plt.figure(figsize=(10, 8))
plt.imshow(img)
plt.show()

画像の加工と編集

Matplotlibを使用すると、画像に様々な加工を施すことができます。
基本的な画像処理から高度な編集まで可能です。

  • カラーマップの変更
  • 画像の回転と反転
  • コントラストと明るさの調整

カラーマップの変更

画像のカラーマップを変更して、異なる表現を実現できます。
グレースケールやヒートマップなど、目的に応じた表示が可能です。

plt.imshow(img, cmap='gray')  # グレースケール
plt.show()

plt.imshow(img, cmap='hot')   # ヒートマップ
plt.show()

画像の回転と反転

画像の向きを変更することもできます。
NumPyの機能を使用して、簡単に実装できます。

import numpy as np

# 90度回転
rotated_img = np.rot90(img)
plt.imshow(rotated_img)
plt.show()

# 左右反転
flipped_img = np.fliplr(img)
plt.imshow(flipped_img)
plt.show()

コントラストと明るさの調整

画像のコントラストや明るさを調整することができます。
以下のコードで、様々な調整が可能です。

plt.imshow(img)
plt.clim(0, 200)  # コントラストの調整
plt.colorbar()    # カラーバーの表示
plt.show()

複数画像の表示方法

複数の画像を同時に表示させる方法について説明します。
グリッドレイアウトを使用することで、効果的な表示が可能です。

  • サブプロットの作成
  • グリッドレイアウトの設定
  • 画像の配置調整

サブプロットの作成

複数の画像を並べて表示するには、サブプロットを使用します。
以下のコードで、基本的なサブプロットを作成できます。

fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.imshow(img1)
ax2.imshow(img2)
plt.show()

グリッドレイアウトの設定

より複雑なレイアウトを作成することもできます。
GridSpecを使用して、柔軟なレイアウトを実現できます。

from matplotlib.gridspec import GridSpec

fig = plt.figure(figsize=(12, 8))
gs = GridSpec(2, 2)
ax1 = fig.add_subplot(gs[0, 0])
ax2 = fig.add_subplot(gs[0, 1])
ax3 = fig.add_subplot(gs[1, :])

画像の配置調整

画像同士の間隔や位置関係を調整することができます。
以下のコードで、細かい調整が可能です。

plt.subplots_adjust(wspace=0.3, hspace=0.3)
plt.tight_layout()
plt.show()

まとめ

当記事では、Matplotlibを使用した画像表示について学習してきました。

  • Matplotlibの基本的な使い方と画像の読み込み方法
  • 様々な表示オプションと画像加工テクニック
  • 複数画像の効果的な表示方法

これらの知識を活用することで、Pythonでの画像処理がより効率的に行えるようになります。
まずは基本的な機能から試してみて、徐々に応用的な使い方にチャレンジしてみましょう。
Matplotlibの可能性は無限大です。

タイトルとURLをコピーしました