回答:
それはプログラミング言語だけでなく、使用しているライブラリに関するものです。私は次のことを考えることができます:
MATLAB-画像処理機能は大丈夫ですが、より高度でリアルタイムの処理を行うには、低レベルのものが必要です。さらに、それは非常に良い移植性を提供しません。
Mathematica-プロトタイピングと迅速な視覚化に適していますが、それはすべて私の謙虚な意見です。
OpenCV-これはIPコミュニティで最も人気のあるライブラリだと思います。優れた機能( GPUコンピューティング、Machine Learningモジュール、GUI-他に何が必要ですか?)、高速であり、まだ開発中です(したがって、小さなバグはすぐに削除されます)。コミュニティについて-それは大きい!主にC / C ++プログラミング用ですが、Pythonも(おそらくあなたに適しています)。
JAI -Java Advanced Imaging-Javaが好きな場合のみ。個人的には、私はそれが好きではありません。
ImageMagick-多くのプログラミング言語で使用できます。APIを確認してください。
CxImage -MSペイントよりも優れたものを作成し、Photoshopの一部の機能を使用する場合に適しています。
CImg-明らかにC ++で使用されますが、OpenCVは依然として優れています。
PIL-多くの機能を備えたPython固有のライブラリ。あなたがそれを好きなら、あなたはよく見ることができます。
SimpleCV-基本的には、いくつかの調整を加えたOpenCV pythonバインディングです。非常に使いやすく、非常に効率的です。
scikit-image -Pythonライブラリもありますが、私の意見ではSimpleCVよりも悪い(私の友人はそれに同意しませんが)。1つの利点は、DAISY機能抽出機能が含まれていることです-高密度の機能が必要な場合に非常に便利です。
GIL - Boostの一部ですが、OpenCVほど機能的ではありません。Boostが気に入って使用している場合、いくつかの基本的な機能については問題ありません。
ResIL - DevILプロジェクトの継続。主な利点は、一部のゲームファイルを含む多くのファイル形式で動作することです。
PINK-もともとC ++で書かれています。私は最近それを試してみましたが、一緒に仕事をするのはとても楽しかったです。Pythonとの優れた統合および組み込みCの高速化。それ以外にも、多くの優れたアルゴリズムがあります。
明らかに、もっと多くの画像処理ライブラリがありますが、これらは私が接触したものです。したがって、何かを始めたい場合は、OpenCVを選択してください(C ++フレームワークを使用することが望ましい)-後悔はしません!一方、プログラミングスキルがそれほど高くない場合は、Pythonベースのライブラリの使用を検討することをお勧めします。これは、学習とセットアップが非常に簡単です。
MATLABは、画像処理の学習に最適な言語です。(私の意見です)
学習が簡単で、ハードウェアに依存せず、コンパイルされた言語よりも柔軟であり、スクリプト言語よりも効率的である可能性があります(マシンレベルでの信号処理に最適化された固有のdllにより)。アカデミックおよびエンジニアリングのサポートが良好です。
C / C ++は、画像処理のスタンドアロンアプリケーションを作成するのに最適な言語です。IDEのスイートの下で、最も効率的なネイティブコードを生成できます。また、C ++のIDEは、より優れたマシンレベルのデバッグ機能を提供します。
一部のスクリプト言語も使用されています。これらは確かに柔軟性があり、移植性があり、かなり効率的です。しかし、低レベルではデバッグが容易ではないかもしれません。
また、CUDA、OpenCLなどの新しいGPU処理機能により、計算スループットが劇的に向上します。(ただし、効率の向上を利用するには、基礎となるGPUパイプラインハードウェアアーキテクチャに注意する必要があるため、学習するのはより困難です)