初めに
今、勉強している画像認識について、基本部分から整理しようと思いました。
OpenCVというライブラリを使って整理しようと思います。
OpenCVとは
Wikipediaに書いてあるので、そちらをぜひ参照してもらうと理解できると思います。
画像処理をはじめ、いろいろな機能を持つライブラリです。また、マルチプラットフォームの対応で扱いやすいです。今回はPythonで書いていきたいと思います。
まずは、簡単に
まずは、簡単に画像を読み込んで同じ画像を呼び出す処理と、グレースケールで画像を呼び出すサンプルを書きたいと思います。
サンプルで用いる画像はなんでもいいです。画像ファイルをsample.pngで読み込んでいるので、画像をその名前に変更するか、読み込み部分のファイル名を画像ファイル名に合わせる必要があります。
補足ですが、拡張子ですが、pngファイルを使うならそのままの拡張子で、jpegファイルなら、jpgなどになります。
画像ですが、いつも使っているのはいらすとやの画像です。(いつもお世話になっています)
また、imagesディレクトリとファイル出力先のoutput_imagesディレクトリはあらかじめmkdirなどで作る必要があります。
$ mkdir images
$ mkdir output_images
画像を読み込み、画像を出力する
特定の画像を読み込み、出力した結果をデフォルトに設定しているイメージアプリで表示するものです。
Pythonで実装しており、あらかじめpip install(anacondaの場合、conda install)opencv-pythonをインストール必要があります。
今回はanaconda環境で作っているので、以下のコマンドでインストールしています。
mac OS使ってます。
$ conda install -c menpo opencv
実装します。
import cv2
img = cv2.imread("./images/sample.png")
img2 = cv2.imread("./images/sample.png", 0)
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imshow('img2', img2)
cv2.waitKey(0)
cv2.destroyAllWindows()
入力した画像と同じもの、グレースケールの画像が出力されるはずです。
せっかくなので、ファイルに保存する処理も記載します。
import cv2
img = cv2.imread("./images/sample.png")
img2 = cv2.imread("./images/sample.png", 0)
cv2.imwrite("./output_images/sample_copy.jpg", img)
cv2.imwrite("./output_images/sample_copy_gray.jpg", img2)
最後に
一番基本的な処理ですが、少しづつ機能を足してリッチなものにしていきたいと思います。