質問するログイン新規登録

質問編集履歴

4

編集

2018/06/18 12:13

投稿

carnage0216
carnage0216

スコア194

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

3

編集

2018/06/18 12:13

投稿

carnage0216
carnage0216

スコア194

title CHANGED
File without changes
body CHANGED
@@ -179,4 +179,8 @@
179
179
  ```
180
180
  に入力して重心を求められるのではないかと考えているのですが、解決法はわかるのですが、書き方がわかりません。
181
181
  どのように「書き方」を調べればいいのでしょうか?
182
- いつも皆様に解決してもらっているばかりで自分ではなにもできていません。というよりうまく学習できていません。
182
+ いつも皆様に解決してもらっているばかりで自分ではなにもできていません。というよりうまく学習できていません。
183
+
184
+
185
+ ペットボトルの蓋を円と認識させて中心の点を緑色としてみました。
186
+ ![イメージ説明](5c8332303b87da885ada19e24b8fc95b.png)

2

編集

2018/06/17 17:24

投稿

carnage0216
carnage0216

スコア194

title CHANGED
File without changes
body CHANGED
@@ -150,7 +150,7 @@
150
150
  ```
151
151
  **<編集6/17>**質問の編集までに時間がかかりすいませんでした。
152
152
  自身で解決できないか試行錯誤したのですがうまくいかず途方に暮れていました。
153
- 合体とは載せた二つのプログラム、「重心を画像から求めるプログラム」と「カメラの映像からハフ変換を利用して円を検出するプログラム」を組み合わせて、「カメラの映像からハフ変換を利用して円を検出した後、検出した円から重心を求めるプログラムを作る」ことを言っていました。
153
+ 合体とは載せた二つのプログラム、「重心を画像から求めるプログラム」と「カメラの映像からハフ変換を利用して円を検出するプログラム」を組み合わせて、「カメラの映像からハフ変換を利用して円を検出した後、検出した円から重心を求めて、**その重心の部分に赤い点を描画す**プログラムを作る」ことを言っていました。
154
154
  説明不足で本当にすいません。
155
155
 
156
156
  お願い事のようになってしまい申し訳ないのですが、

1

編集

2018/06/17 13:32

投稿

carnage0216
carnage0216

スコア194

title CHANGED
File without changes
body CHANGED
@@ -3,13 +3,15 @@
3
3
  - visual studio 2017
4
4
  - opencv 3.4.1
5
5
 
6
- カメラからの円検出のプログラムと重心を求めるプログラムを合体させたいです。
6
+ ~~カメラからの円検出のプログラムと重心を求めるプログラムを合体させたいです。~~
7
- ここで問題があるのですが、カメラからの映像をMat img = imread("sample.jpg", IMREAD_GRAYSCALE);で画像として取り出しグレースケール化してから重心を求めるプログラムのようにすればいいのでしょうか?
7
+ ~~ここで問題があるのですが、カメラからの映像をMat img = imread("sample.jpg", IMREAD_GRAYSCALE);で画像として取り出しグレースケール化してから重心を求めるプログラムのようにすればいいのでしょうか?~~
8
- その方法で行うとしたらまずどのフォーマットで画像を取得するかを考えないとだめですね。
8
+ ~~その方法で行うとしたらまずどのフォーマットで画像を取得するかを考えないとだめですね。~~
9
9
 
10
- 手順としてはカメラから円を検出して赤色で囲う、検出された円を画像として置き換え、重心を求める。
10
+ ~~手順としてはカメラから円を検出して赤色で囲う、検出された円を画像として置き換え、重心を求める。~~
11
- ただカメラからの映像から円の画像を作る?関数はopencvにあるでしょうか?
11
+ ~~ただカメラからの映像から円の画像を作る?関数はopencvにあるでしょうか?~~
12
12
 
13
+
14
+
13
15
  **まず一つ目のプログラムはepistemeさんから頂いた重心を画像から求めるプログラム。**
14
16
  ```
15
17
  #include "opencv2/opencv.hpp"
@@ -145,4 +147,36 @@
145
147
  return 0;
146
148
 
147
149
  }
148
- ```
150
+ ```
151
+ **<編集6/17>**質問の編集までに時間がかかりすいませんでした。
152
+ 自身で解決できないか試行錯誤したのですがうまくいかず途方に暮れていました。
153
+ 合体とは載せた二つのプログラム、「重心を画像から求めるプログラム」と「カメラの映像からハフ変換を利用して円を検出するプログラム」を組み合わせて、「カメラの映像からハフ変換を利用して円を検出した後、検出した円から重心を求めるプログラムを作る」ことを言っていました。
154
+ 説明不足で本当にすいません。
155
+
156
+ お願い事のようになってしまい申し訳ないのですが、
157
+
158
+ 今回の解決すべき問題点は円を検出するのに働く以下の部分、
159
+ ```
160
+ circles = cvHoughCircles(gray_img, storage, CV_HOUGH_GRADIENT,
161
+ 1, 100, 20, 50, 10, MAX(gray_img->width, gray_img->height));
162
+ ```
163
+ から検出した円の面積というか画素の塊の情報を
164
+
165
+ ```
166
+ int count = 0;
167
+ float x_g = 0.0f;
168
+ float y_g = 0.0f;
169
+ for ( int y = 0; y < img.rows; y++ ) {
170
+ for ( int x = 0; x < img.cols; x++ ) {
171
+ if ( img.data[y*img.step + x] == 255 ) {
172
+ count++;
173
+ x_g += x;
174
+ y_g += y;
175
+ }
176
+ }
177
+ }
178
+ Point2f mc = Point2f( x_g/count, y_g/count);
179
+ ```
180
+ に入力して重心を求められるのではないかと考えているのですが、解決法はわかるのですが、書き方がわかりません。
181
+ どのように「書き方」を調べればいいのでしょうか?
182
+ いつも皆様に解決してもらっているばかりで自分ではなにもできていません。というよりうまく学習できていません。