![]() |
OpenCV 4.13.0
Open Source Computer Vision
|
OpenCVは1999年にIntelでGary Bradskyによって開始され、最初のリリースは2000年に登場した。Vadim PisarevskyがGary Bradskyに加わり、IntelのロシアにおけるOpenCVソフトウェアチームを率いた。2005年には、2005年のDARPA Grand Challengeで優勝した車両Stanleyにおいて、OpenCVが使用された。その後、Gary BradskyとVadim Pisarevskyがプロジェクトを主導し、Willow Garageの支援のもとで活発な開発が続けられた。現在OpenCVはコンピュータビジョンや機械学習に関連する多数のアルゴリズムをサポートしており、日々拡張を続けている。
OpenCVはC++、Python、Javaなど多様なプログラミング言語をサポートしており、Windows、Linux、OS X、Android、iOSといったさまざまなプラットフォームで利用できる。CUDAやOpenCLをベースとした高速なGPU演算用のインターフェースも活発に開発が進められている。
OpenCV-PythonはOpenCVのPython APIであり、OpenCV C++ APIとPython言語のそれぞれの長所を組み合わせている。
OpenCV-Pythonは、コンピュータビジョンの問題を解決するために設計されたPythonバインディングのライブラリである。
PythonはGuido van Rossumによって始められた汎用プログラミング言語であり、主にそのシンプルさとコードの読みやすさから、非常に短期間で広く普及した。プログラマは可読性を損なうことなく、より少ない行数でアイデアを表現できる。
C/C++のような言語と比べると、Pythonは低速である。とはいえ、PythonはC/C++で容易に拡張できるため、計算負荷の高いコードをC/C++で記述し、それをPythonモジュールとして利用できるPythonラッパーを作成できる。これには2つの利点がある。第一に、コードが元のC/C++コードと同じくらい高速であること(実際には背後で実際のC++コードが動作しているため)、第二に、C/C++よりもPythonの方がコーディングが容易であることである。OpenCV-Pythonは、元のOpenCV C++実装に対するPythonラッパーである。
OpenCV-PythonはNumpyを利用している。NumpyはMATLABスタイルの構文を備えた、数値演算用に高度に最適化されたライブラリである。OpenCVのすべての配列構造はNumpy配列との間で相互に変換される。これにより、SciPyやMatplotlibといったNumpyを使用する他のライブラリとの統合も容易になる。
OpenCVは、OpenCV-Pythonで利用できるさまざまな関数を案内する新しいチュートリアル集を導入する。このガイドは主にOpenCV 3.x系を対象としている(ただしほとんどのチュートリアルはOpenCV 2.xでも動作する)。
PythonとNumpyの予備知識があることが望ましい。これらは本ガイドでは扱わないためである。OpenCV-Pythonで最適化されたコードを書くには、Numpyの習熟が必須である。
このチュートリアルは元々、Alexander Mordvintsevの指導のもと、Google Summer of Code 2013プログラムの一環としてAbid Rahman K.によって開始された。
OpenCVはオープンソースの取り組みであるため、ライブラリ・ドキュメント・チュートリアルへの貢献は誰でも歓迎される。このチュートリアルに何か誤り(小さなスペルミスからコードや概念の重大な誤りまで)を見つけた場合は、GitHubでOpenCVをクローンし、プルリクエストを送って自由に修正してほしい。OpenCVの開発者があなたのプルリクエストを確認し、重要なフィードバックを返し、(レビュアーの承認を得たうえで)OpenCVにマージされる。こうしてあなたはオープンソースの貢献者となる :-)
OpenCV-Pythonに新しいモジュールが追加されるにつれて、このチュートリアルも拡充していく必要がある。特定のアルゴリズムに精通していて、そのアルゴリズムの基本理論と使用例を示すコードを含むチュートリアルを書ける場合は、ぜひ寄稿してほしい。
忘れないでほしい。みんなで力を合わせれば、このプロジェクトを大きく成功させられる!!!
以下はOpenCV-Pythonにチュートリアルを寄稿した貢献者の一覧である。