取りたいポイントの座標を(x,y)のとき、
unsigned char *pixel = (unsigned char*) (IplImageのバッファ名)->
imageData+ y*imagebuf->widthStep + x*imagebuf->nChannels;
もしくは
unsigned char *pixel = ((unsigned char*)(image->imageData +
image->widthStep*y))[3*x+index]
もしくは
inline unsigned char getPixel(IplImage *image, int x, int y, int index)
{
return (uchar)image->imageData[y*image->widthStep + x*image->nChannels + index];
}
追記:
実際に試したところcvGet2Dと上のgetPixelの結果が異なってしまった。
どうやら、cvGet2Dがx,yではなく行,列であるため指定した所と縦横が逆になってしまったことに
起因するようだ。まぁいずれにしてもcvGet*Dは非推奨だし、getPixelの方使った方が無難かもしれん。
cvGetReal*Dとすると2値画像からの輝度値を取得する。
最終更新:2011年04月03日 18:50