その他Mochizuki画像解析環境の比較ツイートシェアGoogle+はてブPocketこのページのコンテンツ1.解析実行速度2.コーディングの簡単さとコードの読み易さ3.環境の再現の簡単さ4.拡張性の高さまとめImageJ、MetaMorph、MATLABなど画像解析が可能なプラットフォームは数多くあります。その中でOpenCVを使う利点は何でしょうか。これらの点について、ImageJ、MetaMorph、MATLAB、OpenCVの比較を行います。1.解析実行速度C++を用いたOpenCVプログラムは、普通ImageJやMetaMorph、MATLABのようなスクリプト言語で同じような処理を行うプログラムより圧倒的に高速です。高解像度の動画処理となるとC++言語のような高速な動作が必要になるため、OpenCVが非常に有利になります。C++をLinux上でコンパイル、実行するのであれば、インテルの高速なコンパイラが無料で使えます。2.コーディングの簡単さとコードの読み易さコーディングの簡単さとコードの読み易さについては、私としては、どれもほとんど変わらないと考えています。重要なのが、これまでにどの言語のプログラミング経験があるかということで、C言語やC++言語の経験があれば、OpenCVの習得は速いでしょうし、Javaの経験があればImageJの習得は速いでしょう。MetaMorphやMATLABはそれぞれ独自の言語体系をもっていますが、ユーザーがわかりやすいように改善が続けられています。3.環境の再現の簡単さ自分がコードしたプログラムを他の人に渡したいときがあると思います。そのような場合、相手のコンピューターにすでにImegeJやMetaMorph、MATLABがインストールされていればこれら3つがOpenCVに比較してより簡単に環境を再現できると思います。フリーのImageJについては問題ありませんが、MetaMorphとMATLABはとても高価なソフトウェアです。その点でMetaMorphとMATLABはやることは簡単だとしても、コストの面で非常に不利です。OpenCVはオープンソースのライブラリです。環境構築に手間がかかることは否定できませんが、だれでも環境を自由に準備できます。4.拡張性の高さ前に作ったコード、あるいは、他の人が作ったコードを改良したいときに、拡張性の高さが重要になってきます。実は拡張性の高さというのはオープンソースであるか否かということに強く関係しています。いうのも、オープンソースでなければ、機能の追加に制限を受ける可能性があるからです。機能を追加する上で、その言語のコミュニティの大きさも重要です。ImageJ、OpenCVは大きなコミュニティがありますが、有償ソフトウェアであるMetaMorphとMATLABはそれに比べて画像解析のコミュニティは小さいでしょう。得られたデータを同じ実行環境で続けて解析に使いたい場合には、その環境特有の言語を用いて自分でプログラミングをする必要があります。ゆえに、ここでも自分の経験のある言語を使うのが得策です。まとめまとめると、プロプライエタリなMetaMorphとMATLABは初心者が取り掛かりやすいという入り口のハードルの低さはあるものの、オープンソースではないため、ImageJ、OpenCVほどのコミュニティが形成されていないこと、imageJとOpenCVを比較したときの差は、プログラミングのしやすさという点ではほぼ変わらないものの、環境構築の簡単さという点ではImageJが勝り、実行速度の点ではOpenCVが勝るということが押さえるべきポイントです。その他ツイートシェアはてブGoogle+PocketfeedlyC++の基本C++でCSVファイルを読み込むRECOMMENDこちらの記事も人気です。:ピクシーダストテクノロジーズ株式会社で主に画像処理の研究開発をやっています。