cvmGetとcvGetReal2Dで行列の要素の取得,
cvmSetとcvSetReal2Dで行列の要素の代入ができる.
カラー画像,マルチチャンネル行列にはcvSet2D,cvGet2Dが使える.
- double cvmGet( CvMat* mat, int row, int col );
- void cvmSet( CvMat* mat, int row, int col, double value );
- double cvGetReal2D( CvMat* mat, int row, int col );
- void cvSetReal2D( CvMat* mat, int row, int col, double value );
- CvScalar cvGet2D( CvMat*, int row, int col );
- void cvSet2D( CvMat* mat, int row, int col, CvScalar value );
- 解説
- サンプルコード
- 実体ファイル
double cvmGet( CvMat* mat, int row, int col );†
行列の要素を行要素row, 列要素colで指定して取得する関数.
- mat:CvMat*型の行列
- row:int型の行番号(y座標)
- col:int型の列番号(x座標)
返り値†
void cvmSet( CvMat* mat, int row, int col, double value );†
行列のrow行,col列に値valueを代入する関数.
- mat:CvMat*型の行列
- row:int型の行番号(y座標)
- col:int型の列番号(x座標)
- value:double型の代入したい値
返り値†
double cvGetReal2D( CvMat* mat, int row, int col );†
行列の要素を行要素row, 列要素colで指定して取得する関数.
- mat:CvMat*型の行列.IplImage*型の画像でも可.
- row:int型の行番号(y座標)
- col:int型の列番号(x座標)
返り値†
void cvSetReal2D( CvMat* mat, int row, int col, double value );†
行列のrow行,col列に値valueを代入する関数.
- mat:CvMat*型の行列.IplImage*型の画像でも可.
- row:int型の行番号(y座標)
- col:int型の列番号(x座標)
- value:double型の代入したい値
返り値†
CvScalar cvGet2D( CvMat*, int row, int col );†
行列の要素(マルチチャンネル)を行要素row, 列要素colで指定して取得する関数.
- mat:CvMat*型の行列.IplImage*型の画像でも可.
- row:int型の行番号(y座標)
- col:int型の列番号(x座標)
返り値†
void cvSet2D( CvMat* mat, int row, int col, CvScalar value );†
- 行列の要素を取得,書き換えられる
- 画像ではなく行列なので,座標の軸が画像と違うことが最大の罠.例えば下記の様な3x3の行列があった場合,行と列は次の様に指定する
(0,0) | (0,1) | (0,2) |
(1,0) | (1,1) | (1,2) |
(2,0) | (2,1) | (2,2) |
- 画像と違うのがマジ困る.まぁ,行列の指定としては正しいんだが
- 行列の外側の番地を叩いてしまった場合は実行時にランタイムエラーが出る.
- コンパイルは素通りするので注意が必要
- cvmGetとcvmSetは行列のタイプがCV_32FもしくはCV_64Fの場合のみ有効な高速版
- それ以外のタイプの行列を渡すとランタイムエラーになるので注意が必要
- cvGetReal2D以外にもcvGetReal1D,cvGetReal3D,cvGetRealNDがある.
- 行列の代わりに画像も利用できる.
サンプルコード†
CvMat *R = cvCreateMat( 3, 3, CV_32F);
int x, y;
for(y = 0;y < 3;i++){
for(x = 0;x < 3;j++){
cvmSet( R, y, x, 0); //ここで,y,xの順になっているのに注意!
}
}
実体ファイル†
- cxcore/include/cxtypes.h
- cxcore/include/cxcore.h
- cxcore/src/cxarray.cpp
ジャンル:OpenCV:OpenCV 1.0:OpenCV 1.1準拠