今回はOpenCVの概要と基本機能を紹介する。ベータ→正式版に合わせて改訂。Insider編集部(デジタルアドバンテージ社)が「www.buildinsider.net」というサイトから、内容を改変することなく、そのまま「@IT」へと転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。Library)は、オープンソースのコンピューター・ビジョン・ライブラリです。コンピューターで画像や動画を処理するのに必要な、さまざま機能が実装されており、BSDライセンスで配布されていることから学術用途だけでなく商用目的でも利用できます。加えて、マルチプラットフォーム対応されているため、幅広い場面で利用されていることが特徴です。Garageに開発が引き継がれた後、現在はコンピュータービジョンの技術開発を手掛けるItseezによって開発が進められています。OpenCVを使うと、主に以下のような機能を利用できます。2015チュートリアル資料」から引用)。OpenCVの主要機能core(データ構造、行列演算、エラー処理など)とhighgui、imgcodecs、videoio(GUI、画像ファイル入出力、動画ファイルの入出力、カメラキャプチャ)をベースとして、このような多種多様な機能が提供されています。各英単語の意味は、上記の箇条書きを参考にしてください。歴史OpenCVは、2006年に1.0がリリースされ、2009年にメジャーバージョンが実施され2.0がリリースされました。その後、しばらく2.4.x系のリリースが続いた後、ついに2015年6月にメジャーバージョンが実施され、3.0がリリースされました。3.1は2015年の4Qにリリース予定のようです。2015チュートリアル資料」から引用)。これらの詳細は後述します。Code(GSOC)の成果をベースにして、機能の追加やチュートリアルの拡充が行われています。2014の成果がまとめられたムービーです。3.0から利用できるようになっています。図4はOpenCVを用いた人体追跡のデモムービーです。Pi上でOpenCVを動作させ、テニスボールを追跡するデモです。Linuxもサポートしているため、このような小型コンピューター上でも(CPUやメモリの制約はありますが)OpenCVを動作させることができます。3.0では、以下のプラットフォームが公式サポートされています。RTiOSやAndroidにも対応していることから、モバイル端末向けのアプリケーションにも利用できます。Pi上でも動作させることができます。3.0では、以下の言語が公式サポートされています。C(既存のI/F(=インターフェース)は残っているが、3.0からメンテナンス対象外)C++PythonJavaまた、バージョンごとの言語サポート状況は以下の通りです。この内容からも分かるように、バージョンを重ねるごとにサポート言語が充実してきています。APIがメンテナンス対象外となる。APIがメンテナンス対象外になります(既存のI/Fは残っているものの、バグ対応やI/F変更への追従は行われない)。APIもしくは他のバインディングを用いて開発することをお勧めします。非公式バインディング非公式バインディングのうち、継続して更新が行われているものを以下にピックアップしました。CVのみですが、今後対応される可能性があるため、興味のある方はこれらの動向をチェックしておくとよいでしょう。bindingまとめ」にまとめてあります。興味のある方はご参照ください。入出力サポート画像OpenCVは、以下の画像フォーマットの入出力をサポートしています。詳細は公式ドキュメントを参照してください。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。