OpenCVで出来る事
ここまでOpenCVとは何か、そして使用するメリットについてご紹介していきました。画像処理に関する機能を持ったOpenCVですが、グレースケール化を始めとして様々な事ができます。なので続いては、できることの一例についてご紹介していきます。
画像の表示
カメラ等から取り込んだ画像を、imreadというメソッドを活用して表示する事ができます。そして、表示する画像はカラー・モノクロを選ぶこともでき、表示した画像はそのままimwriteメソッドで他のファイルへと保存することもできます。
画像の編集
画像のリサイズや切り取りにおける画像データの統一から、上下左右反転・回転などを行うことで機械学習に必要なデータのカサ増し、グレースケール化・減色処理を始めとした機械学習における計算量を減らすための準備作業などが行う事ができます。
機械学習においては、数万枚の写真を必要とすることも多く、そのような膨大な画像を持っていないケースも当然あります。そんな時に活用されるのが、既に持っているデータ量を増やして学習させるデータオーグメンテーション(同一の画像を引き伸ばしたりすることでデータ量をカサ増しする技術)であり、そのような処理においてもOpenCVは活用されます。
ノイズ除去
画像処理に使用する写真は、何も綺麗なものばかりではありません。中にはノイズが含まれた画像もあり、ノイズは画像処理の妨げとなってしまいます。そこで、OpenCVではblurメソッドやGaussianBlurメソッドを使用することで、ノイズを除去する事ができます。そうすることで、画像から目的の情報を取得するのに邪魔な情報を取り除き、機械学習に最適な形にする事ができます。
物体検出
コンピューターにとってピクセルの集まりでしかない画像から、物体を検出する際に、OpenCVでは特定の物体をバウンディングボックスと呼ばれる四角い領域で処理することで、物体を検出する事ができます。この物体検出が行えるのがOpenCVの特徴であるともいえ、ディープラーニングで学習することで、より精度の高い分析が可能になります。
類似画像の検出
画像の類似する部分を別の画像から見つけ出す処理のことをテンプレートマッチングといい、OpenCVではmatchTemplateメソッドを使うことで可能になります。見本となる画像とターゲットとなる画像を少しずつずらす事で、どの部分が類似するかを認識する事ができます。
ただ、テンプレートマッチングだけでは、傾斜がついた類似する画像を検出する事ができないので、精度の高い検出には他のメソッドも組み合わせる必要があります。