質問編集履歴

3

内容修正

2020/02/18 04:19

投稿

takashi_1111
takashi_1111

スコア24

test CHANGED
@@ -1 +1 @@
1
- リストから最小のものを選
1
+ リストから最小のものを選んでその最小のもの円を描画
test CHANGED
@@ -1,4 +1,16 @@
1
1
  ハフ変換で検出した円で平均の輝度値が最も低いものを選んで円として描画したいです。
2
+
3
+
4
+
5
+ ハフ変換で取得した円の平均輝度値を取得してリストボックスにappendまでしています。
6
+
7
+ ここからリストの最小の平均輝度値の円を選択して描画したいと思っています。
8
+
9
+
10
+
11
+ リストから最小の値を選ぶのはmin()でいいと思いますが、
12
+
13
+ 選んだ値の円を描画する方法がわかりません。
2
14
 
3
15
 
4
16
 
@@ -20,33 +32,7 @@
20
32
 
21
33
 
22
34
 
23
- def calc_mean(gray, center, radius):
35
+ def calc_meanは平均輝度値の平均を計算する関数
24
-
25
- # 計算対象の領域は255, それ以外の領域は0としたマスク画像を作成する。
26
-
27
- mask = np.zeros_like(gray) # すべての画素が0の画像
28
-
29
- cv2.circle(mask, center, radius, color=255, thickness=-1) # 円を描画
30
-
31
- cv2.imwrite("mask.png", mask) # デバッグ用
32
-
33
- # AND 演算
34
-
35
- roi = cv2.bitwise_and(mask, gray)
36
-
37
- cv2.imwrite("roi.png", roi) # デバッグ用
38
-
39
- # 輝度値の平均を計算する。
40
-
41
- n_pixels = (mask == 255).sum() # 計算対象の領域の画素数
42
-
43
-
44
-
45
- mean = roi.sum() / n_pixels
46
-
47
- return mean
48
-
49
-
50
36
 
51
37
 
52
38
 

2

内容修正

2020/02/18 04:19

投稿

takashi_1111
takashi_1111

スコア24

test CHANGED
File without changes
test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
 
52
52
 
53
- gray = cv2.imread(r"C:\Users\kan_suzuki\PycharmProjects\Gankyu\a1.jpg", cv2.IMREAD_GRAYSCALE)
53
+ gray = cv2.imread("a1.jpg", cv2.IMREAD_GRAYSCALE)
54
54
 
55
55
 
56
56
 

1

内容修正

2020/02/18 04:07

投稿

takashi_1111
takashi_1111

スコア24

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