• 締切済み

c++でのプログラミングについて

画像の中心を求める式はわかるんですが それのプログラムの書き方がわかりません。 ヒントやサンプルコードを教えてください s- ちなみに x = 1/N∑xi y = 1/N∑yi これの(x,y) です。 Nは求める画像の画素群です。 お願いします。

みんなの回答

noname#208507
noname#208507
回答No.2

画像の重心を求めたいのではないですか.画像とは別に画素群についての定義があるか,もしくはxiとyiに画素値が係数として付きませんか?「Nは求める画像の画素群です」という説明だけでは,No.1さんの言う通り,単にx,y座標の平均を求めるだけの式にしか見えません. 下記の(OpenCVを使う)コードは条件付きで質問の式と等しくなります.画素値 I(x,y) が 0 または 1 の二値であり,重心を求める画素群が I(x,y) == 1 となる全ての画素 (x, y) であるなら.  IplImage* image = cvLoadImage("test.png", CV_LOAD_IMAGE_GRAYSCALE);  double sumx = 0, sumy = 0, N = 0;  uint8_t I;  for (int y = 0; y < image->height; y++)  {   for (int x = 0; x < image->width; x++)   {    I = CV_IMAGE_ELEM(image, uint8_t, y, x);    sumx += I * x;    sumy += I * y;    N += I;   }  }  std::cout << "X = " << sumx / N << std::endl;  std::cout << "Y = " << sumy / N << std::endl;

回答No.1

要するにx,y各座標の平均値を求めてるだけみたいですが、何がわからんのですか?