私は OpenCV を使い始めてまだ 2 か月ほどです。Bradski と Kaehler の著書「Learning OpenCV」を持っています。質問ですが、すべてを 2.0 以降の方法で実行したい場合、Matrices (Mat) と IplImage はいつ使用すればよいのでしょうか。
Bradky の本では、OpenCV 2.0 に基づいて書かれており、サンプル コードでは主に IplImage を使用していることが最初に (序文で) 述べられていますが、最近のオンライン ドキュメントでは、Mat が現在では画像、マスクなどの包括的なデータ型であり、Matlab の基本的なマトリックスのようなものになっているようです。これにより、IplImage は廃止されたと見なすべきかどうか疑問に思います。
では、新しいコードを書くときは IplImages を完全に避けるべきでしょうか? それとも、Mats ではできないが IplImages ではできる重要なことがあるのでしょうか?
ありがとう。
ベストアンサー1
IplImage
OpenCV には最初から存在していました。これは OpenCV の C インターフェースの一部です。IplImage
構造体のメモリの割り当てと解放は自分で行う必要があります。(cvReleaseImage
コマンドを覚えていますか?)
新しいMat
構造体は C++ 構造体の一部です。したがって、明らかにオブジェクト指向です。また、すべてのメモリを管理します。メモリへの参照を追跡します。参照数がゼロになると、自動的に割り当てを解除します。これは優れた機能の 1 つです。
に進んでください。Intellisenseを備えた IDE を使用している場合は、コードを からにMat
変換するのは簡単なはずです(入力すると、可能な関数、変数などのリストが表示されます)。IplImage
Mat