以下のプログラムは重心を求めるプログラムなそうなのですが、例えば検出した円や四角形の重心を取るとします。
ここで質問なのですが、
以下のプログラムでどうやって重心を求めているのでしょうか?
アルゴリズムが知りたいです。
//重心の計算
int count=0;
double x_g=0.0,y_g=0.0,x_d=0.0,y_d=0.0,xy_d=0.0
for(int y=0; y<height; y++){
for(int x=0;x<width; x++){
if(img_src[y*width+x] == 255){
count++;
x_g +=x;
y_g +=y;
}
}
}
x_g /=conut;
y_g/=count;
No.5ベストアンサー
- 回答日時:
AN04です。
ああ、 venomctun さんか。じゃあ何も知らないですよね。
http://wakariyasui.sakura.ne.jp/p/mech/gou/jyuus …
このあたりをしっかり読んで、重心の定義をしっかり頭に入れて下さい。
図形の重心の場合は、各ピクセルが同じ重さ同じと仮定してます。
すると、重心は各ピクセルの座標値の単純平均になります。
No.4
- 回答日時:
>もしかしたら重心を取るのは現実世界でも
>画像処理の世界でも難しいため平均を用いたのかもしれませんが。
そこまでいうのなら、あなたの知っているか
重心の定義をここにかいてみましょう。
No.3
- 回答日時:
>どうやって、全座標の平均値が重心の座標になることを見つけだしたかはわかりませんが。
No.1の方も仰っていますが、重心(幾何学中心)の定義を知っていればそんな疑問は沸かないと思います。
No.2
- 回答日時:
>なぜ平均にしようとしたのか知りたいです。
if(img_src[y*width+x] == 255){
とあるように、均質と仮定しているからでしょう。
また、このプログラムではimg_src[]に全ピクセル(もしくは一定の粒度の格子点)情報が格納されているものを利用して全座標をなめているので、円や四角形に限らず、任意の複雑な図形にも対応していると思います。
どうもありがとうございます。
ちなみに全座標を調べるのはわかりました。そして検出した全座標の平均が重心となるため、平均値をだしたという事でしょうか?
どうやって、全座標の平均値が重心の座標になることを見つけだしたかはわかりませんが。
No.1
- 回答日時:
そのプログラムがアルゴリズムそのものです。
「重心は座標の平均」という定義をそのままプログラムにしただけです。
何も特殊な技術は使われていないので、初心者でもわかります。
そもそもの「重心」って何だか理解していますか?
理解できていないなら、まずは、数学や画像処理の知識を身につけましょう。
どうもありがとうございます。理解が浅はかでした。
ちなみに、座標の平均でないと重心はもとまらないのでしょうか?
なぜ平均にしようとしたのか知りたいです。もしかしたら重心を取るのは現実世界でも画像処理の世界でも難しいため平均を用いたのかもしれませんが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# C言語 3 2022/11/09 13:27
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
以下のプログラムは重心を求め...
-
エクセルである点からの距離で...
-
3次元空間上の2つの座標から...
-
ガウシアンフィルタのCプログラム
-
矩形同士の当たり判定 C#
-
位置座標からx軸となす角度(ラ...
-
シーケンサー(PLC?)で制...
-
2つの座標と角度から交点座標の...
-
C言語 配列で座標
-
c++でのプログラミングについて
-
Fortranで直交座標から極座標変...
-
ワード上Shapeの位置情報を統一...
-
6点からの楕円の近似計算(最...
-
マインクラフト(pc版)で座標...
-
一番近い点を見つけたい。
-
オブジェクトの重心について
-
複数コントロール(ラベル)を...
-
エクセルでの座標計算の質問
-
ゲームプログラミングにおけるs...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
エクセルである点からの距離で...
-
エクセルで回転する座標の出し方
-
3次元空間上の2つの座標から...
-
始点、終点の二つの座標と半径...
-
c言語でキーボードから2点の座...
-
閉図形の座標の配列が右回りか...
-
以下のプログラムは重心を求め...
-
交差する2線分の交点座標の求め方
-
y=x^2の座標をプロットするプロ...
-
ダイアログ内コントロールの位...
-
シーケンサー(PLC?)で制...
-
ガウシアンフィルタのCプログラム
-
多角形の内部かどうか判定する方法
-
直線上にある点の座標の求め方
-
エクセルシート上のマウスポイ...
-
OpenCvSharp4による画像判定解...
-
C言語 配列で座標
-
ピクチャボックスの座標取得
おすすめ情報