354
Help us understand the problem. What are the problem?

posted at

updated at

画像処理100本ノックを「Google Colaboratory」で楽々学習

 2022-02-21 22.35.24.png

画像処理100本ノックとは

 以下のような素晴らしい記事を発見しました。

https://qiita.com/yoyoyo_/items/2ef53f47f87dcf5d1e14 (リンク切れ)

 画像処理を、OpenCV等の高度なライブラリを使わず行うことで、画像処理の理解を深める、非常に有用な練習問題集です。自分も画像処理の基礎を学びなおしたかったので、自己学習のため活用させていただくことにしました。

 ただ、初学者にとってハードルになりそうなのが、環境構築のところです。GitHubのREADMEに丁寧に描かれているのですが、初学者にとっては難易度高く、時間もかかります。また、自宅以外の環境でちょっと学習したいときなどにも不便です。

 そんな手間を解消するために、Googleが提供している環境構築不要・無料でPythonの開発が可能なWebサービス「Google Colaboratory」を使って、画像処理100本ノックが動く環境を構築してみました。

「Google Colaboratory」上に画像処理100本ノックの環境を構築

 Google Colaboratory自体で何ができるか、便利な使い方TIPS等に関しては、以下記事参照ください。

 基本的には、Google Colaboratory(Google Colab)上で画像処理100本ノックのコードがそのまま動くのですが、いくつか気をつけるべきポイントがあるので、それらに関して説明いたします。

 本記事の最後に、実際に演習問題を解いているGoogle Colabのノートブックへのリンクも貼っています(まだやりかけです)。こちらはコピーすればそのまま動きますので、合わせて参考にしてみて下さい。

必要なライブラリのインポート

 以下コマンド実行することで、必要なライブラリをインポートします。

import cv2
import matplotlib.pyplot as plt
import numpy as np

画像の読み込みと表示

 以下コマンドで画像の読み込みと表示を行います。

 skimageを使う方法

from skimage import io
img = io.imread('https://yoyoyo-yo.github.io/Gasyori100knock/dataset/images/imori_256x256.png')

plt.axis('off')
plt.imshow(img)

 Open CVを使う方法

!wget https://yoyoyo-yo.github.io/Gasyori100knock/dataset/images/imori_256x256.png

img = cv2.imread('imori_256x256.png')

plt.axis('off')
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))

 以下のように画像が表示されます。

 2022-02-21 22.35.24.png

画像の保存と読み込みと表示

 一旦画像をファイルに書き出してから読み込んで表示する方法です。

cv2.imwrite("out_img.jpg", img)
out_img = cv2.imread("out_img.jpg")
plt.axis('off')
plt.imshow(cv2.cvtColor(out_img, cv2.COLOR_BGR2RGB))

まとめ

 上記のポイントに注意すれば、画像処理100本ノックをGoogle Colab上で学習できると思います。どの問題も、OpenCVを使えばAPI1つ呼び出して出来てしまうのですが、このように画素レベルで、アルゴリズムを理解しながら手を動かすのは、基礎固めに非常に重要なことだと思います。

 私も、以前PythonでOpenCVに頼らずNumpy+PILで画像処理のフィルタを1から作って理解するということをしてみましたが、やっぱり自分で手を動かして実装した内容というのは、理解が深まりますし、自身もつきます。

 100本ノック全部やれば、相当力つきそうなので地道にこなしていきたいと思います。

 以下が、Google Colab上で学習中の画像処理100本ノックのノートブックです。まだ全然途中なので制覇せねば…

画像処理100本ノック(Google Colab版)途中

 また、写真に興味ある人は、RAW現像をブラウザ上で実行できる以下記事も興味深いのではないかと思います。もしよろしければ参考にしてみて下さい。

関連ページ

変更履歴

  • 2022/02/21 Google Colabの画像リンク切れ修正・記事を微修正
  • 2020/06/17 関連ページ追記
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
354
Help us understand the problem. What are the problem?