私は画像/ビデオ処理を始めようと思っており、最初に良いライブラリを探していました。OpenCV と IVT の 2 つについて聞いたことがあります。どちらから始めるのが良いか、両方の長所と短所、そして後で商用利用するのにどちらが適しているかについて、あなたの意見を聞きたいです。
2 に答える
どちらも非常によく似た機能を提供しており、その約 95% が重複しています。
どちらも BSD(ish) ライセンスであり、商用パッケージで広く使用されています。
IVT はよりクリーンで最新の C++ 設計ですが、opencv への新しい c++ バインディングはうまく機能します。Opencvにはさらにいくつかの「C」タイプのマクロがありますが、Cから使用できることも意味します.OpencvはPythonや他の言語でも非常によくサポートされています.IVTについては知りません.
CImgもあります。必要なヘッダー ファイルは 1 つだけで、C++ 型のテンプレートを使用するため、result = image.blur().sharpen().edge()
ほとんど Mathematica と同じようにコードを記述できます。
特に認識や機械学習などの機能の深さは同じではありませんが、使いやすいことは間違いありません。GPL/LGPL であるため、注意して商業的に使用できます。
OpenCVははるかに広く使用されているため、質問に答える可能性のあるユーザーの数が多くなりますが、質問をする初心者のセットもはるかに多くなります!
私にとっての決定事項は、openCV が CUDA (つまり、並列 GPU) の (ほぼ) すべての機能をサポートするように移行していることです。これは、リアルタイムのビデオ処理を必要とするものにとって素晴らしいものです。
これ以外は、パフォーマンスについてコメントできませんでした。IVT のベンチマークを十分に行っていませんでした。OpenCV は多くの操作にカスタム SSE2 アセンブラーを使用し、マルチコア/ハイパースレッド CPU を使用している場合は TBB を使用して残りを並列処理します。
私はあなたと同じ初心者で、個人的には OpenCV と言っています。OpenCV の最初の学習経験は、IVT よりも簡単でした。ドキュメントが非常にきちんとしていて明確であり、一般的な初心者向けの本、多くのチュートリアル、OpenCV のサンプル プロジェクトもあるからです。