アプリ版:「スタンプのみでお礼する」機能のリリースについて

画像の中心を求める式はわかるんですが
それのプログラムの書き方がわかりません。
ヒントやサンプルコードを教えてください s-

ちなみに

x = 1/N∑xi
y = 1/N∑yi

これの(x,y)
です。
Nは求める画像の画素群です。

お願いします。

A 回答 (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;
    • good
    • 0

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

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!