整数型で表現される 2 次元座標上の点(通常は, 0 が原点).
typedef struct CvPoint
{
int x;
int y;
}
CvPoint;
/* コンストラクタ */
inline CvPoint cvPoint( int x, int y );
/* CvPoint2D32f からの変換 */
inline CvPoint cvPointFrom32f( CvPoint2D32f point );
浮動小数点型で表現される 2 次元座標上の点(通常は, 0 が原点).
typedef struct CvPoint2D32f
{
float x;
float y;
}
CvPoint2D32f;
- x
x 座標.
- y
y 座標.
/* コンストラクタ */
inline CvPoint2D32f cvPoint2D32f( double x, double y );
/* CvPoint からの変換 */
inline CvPoint2D32f cvPointTo32f( CvPoint point );
浮動小数点型で表現される 3 次元座標上の点(通常は, 0 が原点).
typedef struct CvPoint3D32f
{
float x;
float y;
float z;
}
CvPoint3D32f;
/* コンストラクタ */
inline CvPoint3D32f cvPoint3D32f( double x, double y, double z );
倍精度浮動小数点型で表現される 2 次元座標上の点(通常は, 0 が原点).
typedef struct CvPoint2D64f
{
double x;
double y;
}
CvPoint2D64f;
- x
x 座標.
- y
y 座標.
/* コンストラクタ */
inline CvPoint2D64f cvPoint2D64f( double x, double y );
/* CvPoint からの変換 */
inline CvPoint2D64f cvPointTo64f( CvPoint point );
倍精度浮動小数点型で表現される 3 次元座標上の点(通常は, 0 が原点).
typedef struct CvPoint3D64f
{
double x;
double y;
double z;
}
CvPoint3D64f;
- x
x 座標.
- y
y 座標.
- z
z 座標.
/* コンストラクタ */
inline CvPoint3D64f cvPoint3D64f( double x, double y, double z );
ピクセル精度で表現された矩形のサイズ.
typedef struct CvSize
{
int width;
int height;
}
CvSize;
/* コンストラクタ */
inline CvSize cvSize( int width, int height );
サブピクセル精度で表現された矩形のサイズ.
typedef struct CvSize2D32f
{
float width;
float height;
}
CvSize2D32f;
- width
矩形の幅.
- height
矩形の高さ.
/* コンストラクタ */
inline CvSize2D32f cvSize2D32f( double width, double height );
矩形のオフセット(通常,左上の角)座標,およびサイズ.
typedef struct CvRect
{
int x;
int y;
int width;
int height;
}
CvRect;
- x
左上の x 座標.
- y
左上の y 座標(Windowsビットマップの場合は,左下).
- width
矩形の幅.
- height
矩形の高さ.
/* コンストラクタ */
inline CvRect cvRect( int x, int y, int width, int height );
double 型の値を 4 個まで格納できるコンテナ.
typedef struct CvScalar
{
double val[4];
}
CvScalar;
/* コンストラクタ:
val[0] を val0 で初期化,val[1] を val1で初期化,と続きます
*/
inline CvScalar cvScalar( double val0, double val1=0,
double val2=0, double val3=0 );
/* コンストラクタ:
val[0]...val[3] 全てを,val0123 で初期化します
*/
inline CvScalar cvScalarAll( double val0123 );
/* コンストラクタ:
val[0] を val0 で初期化し,残りの val[1]...val[3] を 0 で初期化します
*/
inline CvScalar cvRealScalar( double val0 );
反復アルゴリズムのための停止基準.
#define CV_TERMCRIT_ITER 1
#define CV_TERMCRIT_NUMBER CV_TERMCRIT_ITER
#define CV_TERMCRIT_EPS 2
typedef struct CvTermCriteria
{
int type;
int max_iter;
double epsilon;
}
CvTermCriteria;
/* コンストラクタ */
inline CvTermCriteria cvTermCriteria( int type, int max_iter, double epsilon );
/* 与えられた cvTermCriteria をチェックして,
type を CV_TERMCRIT_ITER+CV_TERMCRIT_EPS に変更し,
max_iter と eprilon の両方を有効にします.*/
CvTermCriteria cvCheckTermCriteria( CvTermCriteria criteria,
double default_eps,
int default_max_iters );
マルチチャンネル行列.
typedef struct CvMat
{
int type;
int step;
int* refcount;
union
{
uchar* ptr;
short* s;
int* i;
float* fl;
double* db;
} data;
#ifdef __cplusplus
union
{
int rows;
int height;
};
union
{
int cols;
int width;
};
#else
int rows;
int cols;
#endif
} CvMat;
行列は,各列ごとに保存されます.すべての列は,4 バイト境界にアラインメントが調整されます.
多次元,マルチチャンネルの密な配列.
typedef struct CvMatND
{
int type;
int dims;
int* refcount;
union
{
uchar* ptr;
short* s;
int* i;
float* fl;
double* db;
} data;
struct
{
int size;
int step;
}
dim[CV_MAX_DIM];
} CvMatND;
多次元,マルチチャンネルの疎な配列.
typedef struct CvSparseMat
{
int type;
int dims;
int* refcount;
struct CvSet* heap;
void** hashtable;
int hashsize;
int total;
int valoffset;
int idxoffset;
int size[CV_MAX_DIM];
} CvSparseMat;
- type
行列の要素の型とフラグを含む,CvSparseMat のシグネチャ(CV _ SPARSE _ MAT _ MAGIC _ VAL).
- dims
次元数.
- refcount
参照カウンタ.利用されません.
- heap¶
ハッシュテーブルのノードの保存領域.
- hashtable¶
ハッシュテーブル.各エントリはノードのリストです.
- hashsize¶
ハッシュテーブルのサイズ.
- total¶
疎な配列のノード総数.
- valoffset¶
配列ノードの値のオフセット.バイト単位.
- idxoffset¶
配列ノードのインデックスのオフセット.バイト単位.
- size¶
各次元のサイズを表す配列.
IPL 画像ヘッダ.
typedef struct _IplImage
{
int nSize;
int ID;
int nChannels;
int alphaChannel;
int depth;
char colorModel[4];
char channelSeq[4];
int dataOrder;
int origin;
int align;
int width;
int height;
struct _IplROI *roi;
struct _IplImage *maskROI;
void *imageId;
struct _IplTileInfo *tileInfo;
int imageSize;
char *imageData;
int widthStep;
int BorderMode[4];
int BorderConst[4];
char *imageDataOrigin;
}
IplImage;
- nSize¶
sizeof(IplImage)
- ID¶
バージョン,常に 0 です.
- nChannels¶
チャンネル数.OpenCV のほとんどの関数が,1-4 チャンネルをサポートします.
- alphaChannel¶
OpenCV では無視されます.
- depth¶
ピクセル毎のビット数(ビット深度,色深度)+オプションの符号ビット( IPL_DEPTH_SIGN ).サポートされるビット深度は:
- channelSeq¶
OpenCV では無視されます.
- dataOrder¶
0 = IPL_DATA_ORDER_PIXEL - インタリーブカラーチャンネル,1 - 分離カラーチャンネル. CreateImage が作成できるのは,インタリーブチャンネルの画像のみです.例えば,一般的なカラー画像のレイアウトは, のようになります.
- origin¶
0 - 左上原点,1 - 左下原点(Windows ビットマップ形式).
- align¶
画像の行のアラインメント(4 あるいは 8).OpenCV ではこれを無視して,代わりに widthStep を使用します.
- width
ピクセル単位で表された画像の幅.
- height
ピクセル単位で表された画像の高さ.
- roi¶
注目領域(ROI).NULL でない場合,この領域が処理の対象となります.
- maskROI¶
OpenCVでは,必ず NULL です.
- imageId¶
OpenCVでは,必ず NULL です.
- imageId
OpenCVでは,必ず NULL です.
- imageSize¶
バイト単位で表された画像のデータサイズ.インタリーブデータの場合,これは, と等しくなります.
- imageData¶
アラインメントが調整された画像データへのポインタ.
- widthStep¶
アラインメントが調整された画像の行のサイズ.バイト単位で表されます.
- BorderMode¶
画像境界モード.OpenCVでは無視されます.
- BorderConst¶
画像境界値.OpenCVでは無視されます.
- imageDataOrigin¶
オリジナル画像データへのポインタ(アラインメントが調整されているとは限りません).画像を解放するために利用されます.
IplImage 構造体は元々,Intel Image Processing Library(IPL) 固有の形式として利用されていました.OpenCV では,上述のパラメータリストにあるように, IplImage フォーマットの一部のみをサポートします.
この制限に加えて,OpenCV と IPL とでは ROI の扱いが異なります.OpenCV ではすべての入出力画像のサイズ,またはその ROI サイズが正確に一致する必要があります.一方 IPL では,重複する領域が処理の対象となります.つまり画像のサイズ,または ROI のサイズがバラバラでも構いません.