• 締切済み

OpenCvのCvMatについて教えて下さい。

いつもお世話になっております。 質問ですが、配列で画像のピクセル値(R,G,B)を行列に代入する場合は CvMat *points = cvCreateMat (size, 1, CV_32FC3); ピクセルの値を行列へ代入 for (i = 0; i < size; i++) { points->data.fl[i * 3 + 0] = (uchar) src_img->imageData[i * 3 + 0]; points->data.fl[i * 3 + 1] = (uchar) src_img->imageData[i * 3 + 1]; points->data.fl[i * 3 + 2] = (uchar) src_img->imageData[i * 3 + 2]; } のような流れでできますが、 これをピクセル値ではなく座標(x,y)を代入するにはどのように変更したらよいでしょうか。教えて下さい。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

R,G,Bの3要素が I*3+0,+1,+2なら、 x,yの2要素はどうしたらいいか、予想できませんか? あるいは、その座標の配列をOpenCVの関数で使うつもりなら、その関数のマニュアルを読めば、どんな形式が必要か書いてませんか? あるいは、OpenCVで処理するのでなければ、普通にfloat x[SIZE],y[SIZE]みたいな配列2つとか、struct {float x,y} pt[SIZE] みたいに構造体使うとかしたらどうですか?

saltyuta
質問者

お礼

回答ありがとうございます。 OpenCVで使うつもりです。 2要素の場合は、I*2+0,+1でよろしいですか? R,G,Bのとき、右辺はImageDataですが座標の場合はとくにそのようなものはないですか?

関連するQ&A