では,16ビットカラー画像で画素ごとにアクセスするにはどうしたらいいのか.その取得方法や設定方法を紹介する.方法としては,CvScalar型を経由し,Get*D,Set*D関数を使うのが簡単である.CvScalar型は,double val[4] のみを持つ構造体で,各色の輝度値を格納している.以下がサンプルコードである.なお,この方法は16ビットだけでなく他の型の画像でも適用可能である.
画素値の取得
IplImage* img; // img は16ビットカラー画像とする CvScalar pixel = cvGet2D(img, y, x); double b = pixel.val[0]; double g = pixel.val[1]; double r = pixel.val[2];
画素値の設定
CvScalar pixel = cvScalar(b, g, r, 0); cvSet2D(img, y, x, pixel);
0 件のコメント:
コメントを投稿