OpenCV学習:Matクラス詳細解析+ソースコード剖析(一)
Matクラスは基本的なデータ構造で、OpenCVのC++系列関数(クラス)に属し、Matの脈絡を把握し、後続の画像処理作業に役立つので、Matクラスについてよく話します.
OpenCVにおけるMatクラス宣言パス:opencv-2.4.5/modules/core/include/opencv2/core/core.hpp
OpenCVにおけるMatクラスの実現経路:opencv-2.4.5/modules/core/include/opencv2/core/mat.hpp
opencv-2.4.5/modules/core/src/matrix.cpp
Matクラスは次のように宣言されています.
さて、Matの基礎データ構造は上記のようになっていますが、Matのメンバー関数から、MatというOpenCVの基本データ構造の神秘的なベールを開きます.
これらの関数は、上から下まで説明することはできません.論理的であるべきです.これらの関数を次のように分類します.
(1)コンストラクタ
(2)マトリクス要素位置決め関数:at族とptr族関数
(3)Matにおける重要データメンバーsizeとstep
OpenCVにおけるMatクラス宣言パス:opencv-2.4.5/modules/core/include/opencv2/core/core.hpp
OpenCVにおけるMatクラスの実現経路:opencv-2.4.5/modules/core/include/opencv2/core/mat.hpp
opencv-2.4.5/modules/core/src/matrix.cpp
Matクラスは次のように宣言されています.
class CV_EXPORTS Mat
{
//Mat , Mat , Mat ,
......
public:
int flags;// ,
int dims;//
int rows, cols;//
uchar* data;// ,Key Point! , unsigned char 。
int* refcount;// (C++ )
......
};
さて、Matの基礎データ構造は上記のようになっていますが、Matのメンバー関数から、MatというOpenCVの基本データ構造の神秘的なベールを開きます.
これらの関数は、上から下まで説明することはできません.論理的であるべきです.これらの関数を次のように分類します.
(1)コンストラクタ
(2)マトリクス要素位置決め関数:at族とptr族関数
(3)Matにおける重要データメンバーsizeとstep