5
4

More than 3 years have passed since last update.

[Google Colab] 複数の画像をタイル状に並べてサムネイルの様に表示したい

Last updated at Posted at 2020-06-27

Google Colaboratory で画像系の処理を行う際、複数の画像を表示して比較したいときがあります。単純にループの中で一枚一枚表示させると縦にスペースを使いスクロールが大変なので、なるべく横に並べてスペースを有効活用したい。

確認はしてませんが、Jupyter Lab/Notebookでも動作するかもです。

image.png

Numpy.ndarrayとして読み込んだ画像の一括表示

必要パケージのインポート(コピペ用)

import matplotlib.pyplot as plt

関数として定義(コピペ用)

def show_images(images, figsize=(20,10), columns = 5):
  plt.figure(figsize=figsize)
  for i, image in enumerate(images):
      plt.subplot(len(images) / columns + 1, columns, i + 1)
      plt.imshow(image)

画像読み込み例

今回は、Kerasを利用して読み込めるCIFAR-100のデータセットを利用します。

from keras.datasets import cifar100

(x_train, y_train), (x_test, y_test) = cifar100.load_data(label_mode='fine')
images = x_train[:10]

呼び出し例

show_images(images)

image.png

show_images(x_train[:100], figsize=(10,15), columns = 10)

image.png

パラメータは多少調整が必要ですね。

Googleドライブやアップロードした画像ファイルの一括表示

Googleドライブをマウント

ファイルを直接Colabにアップロードした場合はこのステップは不要です。

from google.colab import drive
MOUNT_DIR = '/content/drive' #マウントする場所を指定
drive.mount(MOUNT_DIR)

実行すると、Go to this URL in a browser: にリンクが表示されるのでこれを開き、マウントするGoogleDriveのあるアカウントを選択肢し、アクセスを許可すると、コードが表示されます。

このコードを Enter your authorization code: に入力します。

ls /content/drive/MyDrive/PATH_TO_IMAGE_DIRECTORY/

中身を確認します。
※ PATH_TO_IMAGE_DIRECTORYはGoogleDrive上のパスです。

必要パケージのインポート(コピペ用)

import cv2
from glob import glob
import matplotlib.pyplot as plt
import os

関数として定義(コピペ用)

def show_images_glob(images, figsize=(20,10), columns = 5):
  plt.figure(figsize=figsize)
  for i, image in enumerate(images):
      plt.subplot(len(images) / columns + 1, columns, i + 1)
      plt.imshow(cv2.imread(image))

ファイル読み込み例

SOURCE_IMAGES = "/content/drive/MyDrive/PATH_TO_IMAGE_DIRECTORY"
FILE_PATTERN = "*.jpeg" #ワイルドカードでフィルタリング
images = glob(os.path.join(SOURCE_IMAGES, FILE_PATTERN))

SOURCE_IMAGES には画像が存在するColab上のディレクトリパスを指定
FILE_PATTERN はワイルドカードですべてのjpeg画像を指定しています。

呼び出し例

show_images_glob(images)

example_glob_thumbnail.png

縦横比が違っていても表示できたようです。

参考

5
4
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4