OpenCVは画像処理や画像解析の機能をもつライブラリで、C/C++、Java、Python、MATLAB等で提供されています。
OpenCVを使って画像処理を始めたいけどなにからやればいいのかわからないという方向けに、ロードマップを作成しました。それぞれの記事では具体的なPythonのコードも紹介しているので、コピペベースでプログラムを実行することができます。
ロードマップ
画像/動画の読込
まずはプログラムに画像や動画を読み込む方法を知る必要があります。読み込んだ画像や動画に処理を加えることで、解析等を行うことができます。
画像の読込はこちら
動画の読込はこちら
画像の切り出し、回転
画像/動画を読み込んだあとは、画像に処理を加えていきます。読み込んだ画像には必要な情報以外のノイズが含まれている場合もあります。そういう場合は、画像に任意の部分を切り出す必要があります。
また、(スマホの写真のように)画像を回転させて調整することもできます。
画像に図形や文字を重ねる
最近のスマホアプリでよくあるような、図形や文字を画像に追加するといったこともOpenCVを使ってできます。
図形を重ねる方法
文字を重ねる方法
ここまでくれば、簡単な画像加工アプリとか作れてしまいそうです。
色空間の理解
画像処理において色の理解は避けて通れません。色には様々なルールがあります。そのルールをもとに処理を加えることで、画像から特定の色部分だけを取り出すといったことも可能になります。
色のルール(色空間)についてはこちら
色空間を大まかにでも理解できれば、実際に画像から任意の色だけを抽出してみましょう
画像処理の前処理
機械学習等を用いて複雑な処理をする際は、画像の前処理を実施しておく必要があります。その代表的なものが画像のフィルタリング(ぼかし等)や二値化です。
フィルタリングは画像からノイズを取り除き、物体検出等の精度を高めるために行います。
画像の二値化では任意の閾値を指定し、画像内の不要な部分を完全に取り除きます。
いずれも画像処理における前処理として用いられるケースは少なくありません。
輪郭/物体検出
前処理を理解したところで、画像に映る物体を検出してみます。
物体検出は物体の輪郭を浮き彫りにするところからスタートします。輪郭検出の手法はいくつかありますが、以下記事ではそれぞれの手法を紹介しています。
処理手順を把握したところで、実際に物体を検出してみましょう。ここまでくれば、物体検知のアプリ作成も視野に入ってくるかもしれません。
OpenCVの学習におすすめ書籍
PythonでOpenCV始めてみようという方におすすめなのが以下書籍です。実装例も豊富なので、1からコードを書かずとも学習を進めることができます。
オライリーの1冊は読み物というより辞書としての利用におすすめです。お値段結構しますが、細かい情報までしっかりと詰め込まれています。
まとめ
PythonでOpenCVを学ぶためのロードマップをまとめました。
各記事には原理や計算式を描いている場合もありますが、必ずしもその辺りを理解していなくてもOpenCVを使うことはできます。
まずはコードを試しながら、どのような結果になるのを確認しながら進めていくのがいいかと思います。楽しくOpenCVライフをスタートしましょう^^
ではでは👋