cvmGetとcvGetReal2Dで行列の要素の取得, cvmSetとcvSetReal2Dで行列の要素の代入ができる. カラー画像,マルチチャンネル行列にはcvSet2D,cvGet2Dが使える.

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型の代入したい値

返り値

  • void型なのでなし

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型の代入したい値

返り値

  • void型なのでなし

CvScalar cvGet2D( CvMat*, int row, int col );

行列の要素(マルチチャンネル)を行要素row, 列要素colで指定して取得する関数.

引数

  • mat:CvMat*型の行列.IplImage*型の画像でも可.
  • row:int型の行番号(y座標)
  • col:int型の列番号(x座標)

返り値

  • 指定した行列の要素(CvScalar型)

void cvSet2D( CvMat* mat, int row, int col, CvScalar value );

引数

  • mat:CvMat*型の行列.IplImage*型の画像でも可.
  • row:int型の行番号(y座標)
  • col:int型の列番号(x座標)
  • value:CvScalar型の代入したい値

解説

  • 行列の要素を取得,書き換えられる
  • 画像ではなく行列なので,座標の軸が画像と違うことが最大の罠.例えば下記の様な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準拠


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-08-24 (金) 20:13:35 (1918d)