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

質問編集履歴

3

内容修正

2020/02/18 04:19

投稿

takashi_1111
takashi_1111

スコア24

title CHANGED
@@ -1,1 +1,1 @@
1
- リストから最小のものを選
1
+ リストから最小のものを選んでその最小のもの円を描画
body CHANGED
@@ -1,5 +1,11 @@
1
1
  ハフ変換で検出した円で平均の輝度値が最も低いものを選んで円として描画したいです。
2
2
 
3
+ ハフ変換で取得した円の平均輝度値を取得してリストボックスにappendまでしています。
4
+ ここからリストの最小の平均輝度値の円を選択して描画したいと思っています。
5
+
6
+ リストから最小の値を選ぶのはmin()でいいと思いますが、
7
+ 選んだ値の円を描画する方法がわかりません。
8
+
3
9
  ご教授お願いします。
4
10
 
5
11
 
@@ -9,21 +15,8 @@
9
15
 
10
16
  mean_box = []
11
17
 
12
- def calc_mean(gray, center, radius):
18
+ def calc_meanは平均輝度値の平均を計算する関数
13
- # 計算対象の領域は255, それ以外の領域は0としたマスク画像を作成する。
14
- mask = np.zeros_like(gray) # すべての画素が0の画像
15
- cv2.circle(mask, center, radius, color=255, thickness=-1) # 円を描画
16
- cv2.imwrite("mask.png", mask) # デバッグ用
17
- # AND 演算
18
- roi = cv2.bitwise_and(mask, gray)
19
- cv2.imwrite("roi.png", roi) # デバッグ用
20
- # 輝度値の平均を計算する。
21
- n_pixels = (mask == 255).sum() # 計算対象の領域の画素数
22
19
 
23
- mean = roi.sum() / n_pixels
24
- return mean
25
-
26
-
27
20
  gray = cv2.imread("a1.jpg", cv2.IMREAD_GRAYSCALE)
28
21
 
29
22
  circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, dp=1, minDist=20,

2

内容修正

2020/02/18 04:19

投稿

takashi_1111
takashi_1111

スコア24

title CHANGED
File without changes
body CHANGED
@@ -24,7 +24,7 @@
24
24
  return mean
25
25
 
26
26
 
27
- gray = cv2.imread(r"C:\Users\kan_suzuki\PycharmProjects\Gankyu\a1.jpg", cv2.IMREAD_GRAYSCALE)
27
+ gray = cv2.imread("a1.jpg", cv2.IMREAD_GRAYSCALE)
28
28
 
29
29
  circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, dp=1, minDist=20,
30
30
  param1=50, param2=30, minRadius=0, maxRadius=0)

1

内容修正

2020/02/18 04:07

投稿

takashi_1111
takashi_1111

スコア24

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,4 @@
1
1
  ハフ変換で検出した円で平均の輝度値が最も低いものを選んで円として描画したいです。
2
- 取得した平均輝度値をリストに入れるとこまでは分かるのですが、そこから最小のものを選ぶ方法がよく分かりません。
3
2
 
4
3
  ご教授お願いします。
5
4