質問編集履歴

4

編集

2018/06/18 12:13

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -300,7 +300,7 @@
300
300
 
301
301
  **<編集6/17>**質問の編集までに時間がかかりすいませんでした。
302
302
 
303
- 自身で解決できないか試行錯誤したのですがうまくいかず途方に暮れていました。
303
+ ~~自身で解決できないか試行錯誤したのですがうまくいかず途方に暮れていました。~~
304
304
 
305
305
  合体とは載せた二つのプログラム、「重心を画像から求めるプログラム」と「カメラの映像からハフ変換を利用して円を検出するプログラム」を組み合わせて、「カメラの映像からハフ変換を利用して円を検出した後、検出した円から重心を求めて、**その重心の部分に赤い点を描画する**プログラムを作る」ことを言っていました。
306
306
 

3

編集

2018/06/18 12:13

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -361,3 +361,11 @@
361
361
  どのように「書き方」を調べればいいのでしょうか?
362
362
 
363
363
  いつも皆様に解決してもらっているばかりで自分ではなにもできていません。というよりうまく学習できていません。
364
+
365
+
366
+
367
+
368
+
369
+ ペットボトルの蓋を円と認識させて中心の点を緑色としてみました。
370
+
371
+ ![イメージ説明](5c8332303b87da885ada19e24b8fc95b.png)

2

編集

2018/06/17 17:24

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -302,7 +302,7 @@
302
302
 
303
303
  自身で解決できないか試行錯誤したのですがうまくいかず途方に暮れていました。
304
304
 
305
- 合体とは載せた二つのプログラム、「重心を画像から求めるプログラム」と「カメラの映像からハフ変換を利用して円を検出するプログラム」を組み合わせて、「カメラの映像からハフ変換を利用して円を検出した後、検出した円から重心を求めるプログラムを作る」ことを言っていました。
305
+ 合体とは載せた二つのプログラム、「重心を画像から求めるプログラム」と「カメラの映像からハフ変換を利用して円を検出するプログラム」を組み合わせて、「カメラの映像からハフ変換を利用して円を検出した後、検出した円から重心を求めて、**その重心の部分に赤い点を描画す**プログラムを作る」ことを言っていました。
306
306
 
307
307
  説明不足で本当にすいません。
308
308
 

1

編集

2018/06/17 13:32

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -8,17 +8,21 @@
8
8
 
9
9
 
10
10
 
11
- カメラからの円検出のプログラムと重心を求めるプログラムを合体させたいです。
11
+ ~~カメラからの円検出のプログラムと重心を求めるプログラムを合体させたいです。~~
12
-
12
+
13
- ここで問題があるのですが、カメラからの映像をMat img = imread("sample.jpg", IMREAD_GRAYSCALE);で画像として取り出しグレースケール化してから重心を求めるプログラムのようにすればいいのでしょうか?
13
+ ~~ここで問題があるのですが、カメラからの映像をMat img = imread("sample.jpg", IMREAD_GRAYSCALE);で画像として取り出しグレースケール化してから重心を求めるプログラムのようにすればいいのでしょうか?~~
14
-
14
+
15
- その方法で行うとしたらまずどのフォーマットで画像を取得するかを考えないとだめですね。
15
+ ~~その方法で行うとしたらまずどのフォーマットで画像を取得するかを考えないとだめですね。~~
16
-
17
-
18
-
16
+
17
+
18
+
19
- 手順としてはカメラから円を検出して赤色で囲う、検出された円を画像として置き換え、重心を求める。
19
+ ~~手順としてはカメラから円を検出して赤色で囲う、検出された円を画像として置き換え、重心を求める。~~
20
-
20
+
21
- ただカメラからの映像から円の画像を作る?関数はopencvにあるでしょうか?
21
+ ~~ただカメラからの映像から円の画像を作る?関数はopencvにあるでしょうか?~~
22
+
23
+
24
+
25
+
22
26
 
23
27
 
24
28
 
@@ -293,3 +297,67 @@
293
297
  }
294
298
 
295
299
  ```
300
+
301
+ **<編集6/17>**質問の編集までに時間がかかりすいませんでした。
302
+
303
+ 自身で解決できないか試行錯誤したのですがうまくいかず途方に暮れていました。
304
+
305
+ 合体とは載せた二つのプログラム、「重心を画像から求めるプログラム」と「カメラの映像からハフ変換を利用して円を検出するプログラム」を組み合わせて、「カメラの映像からハフ変換を利用して円を検出した後、検出した円から重心を求めるプログラムを作る」ことを言っていました。
306
+
307
+ 説明不足で本当にすいません。
308
+
309
+
310
+
311
+ お願い事のようになってしまい申し訳ないのですが、
312
+
313
+
314
+
315
+ 今回の解決すべき問題点は円を検出するのに働く以下の部分、
316
+
317
+ ```
318
+
319
+ circles = cvHoughCircles(gray_img, storage, CV_HOUGH_GRADIENT,
320
+
321
+ 1, 100, 20, 50, 10, MAX(gray_img->width, gray_img->height));
322
+
323
+ ```
324
+
325
+ から検出した円の面積というか画素の塊の情報を
326
+
327
+
328
+
329
+ ```
330
+
331
+ int count = 0;
332
+
333
+ float x_g = 0.0f;
334
+
335
+ float y_g = 0.0f;
336
+
337
+ for ( int y = 0; y < img.rows; y++ ) {
338
+
339
+ for ( int x = 0; x < img.cols; x++ ) {
340
+
341
+ if ( img.data[y*img.step + x] == 255 ) {
342
+
343
+ count++;
344
+
345
+ x_g += x;
346
+
347
+ y_g += y;
348
+
349
+ }
350
+
351
+ }
352
+
353
+ }
354
+
355
+ Point2f mc = Point2f( x_g/count, y_g/count);
356
+
357
+ ```
358
+
359
+ に入力して重心を求められるのではないかと考えているのですが、解決法はわかるのですが、書き方がわかりません。
360
+
361
+ どのように「書き方」を調べればいいのでしょうか?
362
+
363
+ いつも皆様に解決してもらっているばかりで自分ではなにもできていません。というよりうまく学習できていません。