回答編集履歴

4

Browの比較を追記

2020/11/22 08:09

投稿

退会済みユーザー
test CHANGED
File without changes

3

Browの比較を追記

2020/11/22 08:09

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,109 @@
1
+ 追記)
2
+
3
+
4
+
5
+ **1. 以下の写真を"img_green_masked.jpeg"と名前を付けて保存してください。**
6
+
7
+ ![イメージ説明](b6843e7be5d22ad9e53138ad1fd7cf52.jpeg)
8
+
9
+
10
+
11
+ **2. 画像と同じフォルダに以下のファイルを(適当な名前).pyと名前を付けて保存して走らせてください。**
12
+
13
+ ```Python3
14
+
15
+ import cv2
16
+
17
+ import numpy as np
18
+
19
+
20
+
21
+ from scipy import stats
22
+
23
+
24
+
25
+ def calc_Bmode(img):
26
+
27
+ if len(img.shape)==3:
28
+
29
+ print(img.shape,"--> ",end="")
30
+
31
+ BGR = cv2.split(img_col)
32
+
33
+ img = BGR[0]
34
+
35
+ print(img.shape)
36
+
37
+ else:
38
+
39
+ print(img.shape)
40
+
41
+
42
+
43
+
44
+
45
+ Brow = np.array(img).flatten()
46
+
47
+ Bmode = stats.mode(Brow[Brow>0])[0][0]
48
+
49
+ print("Bmode", Bmode)
50
+
51
+ img_col =cv2.imread("./img_green_masked.jpeg")
52
+
53
+
54
+
55
+ BGR = cv2.split(img_col)
56
+
57
+ Blue = BGR[0]
58
+
59
+
60
+
61
+ print("---一旦保存法---")
62
+
63
+ cv2.imwrite("./blue.jpeg",Blue)
64
+
65
+ img_blue_loaded = cv2.imread("./blue.jpeg")
66
+
67
+ calc_Bmode(img_blue_loaded)
68
+
69
+ cv2.imshow("img_blue_loaded",cv2.resize(img_blue_loaded,None,fx=0.25,fy=0.25))
70
+
71
+ cv2.waitKey(0)
72
+
73
+
74
+
75
+ print("---色の分解法---")
76
+
77
+ calc_Bmode(Blue)
78
+
79
+
80
+
81
+ cv2.imshow("Blue",cv2.resize(Blue,None,fx=0.25,fy=0.25))
82
+
83
+
84
+
85
+ cv2.waitKey(0)
86
+
87
+
88
+
89
+ ```
90
+
91
+
92
+
93
+ **3. 表示される画像に「識別文字」は見えますね?**
94
+
95
+ ** =(別のファイルを間違えて開いている可能性は排除できますね?**
96
+
97
+
98
+
99
+ **4. どちらの方法でも同じBmodeになっていますか?**
100
+
101
+
102
+
103
+ ---
104
+
105
+
106
+
1
107
  ~~元のファイルと少し違うようで値が違いますができました。~~
2
108
 
3
109
  1以上の~を修正しました。

2

1以上の件

2020/11/22 08:09

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,14 @@
1
- 元のファイルと少し違うようで値が違いますができました。
1
+ ~~元のファイルと少し違うようで値が違いますができました。~~
2
+
3
+ 1以上の~を修正しました。
4
+
5
+ 22となるのはNumpyだとかScipyのせいではなさそうな気がします。
6
+
7
+ (イメージの指定違い?)
8
+
9
+
10
+
11
+ ---
2
12
 
3
13
  ```Python3
4
14
 
@@ -8,22 +18,48 @@
8
18
 
9
19
 
10
20
 
21
+ from scipy import stats
22
+
23
+
24
+
11
25
  img = cv2.cvtColor(cv2.imread("./img.png"),cv2.COLOR_BGR2GRAY)
26
+
27
+
28
+
29
+ print("1以上の条件なし Numpy")
12
30
 
13
31
  arr, count = np.unique(img, return_counts=True)
14
32
 
15
33
  idx = np.argmax(count)
16
34
 
17
- print("Maximum index:",arr[idx])
35
+ print("Maximum index[RAW]:",arr[idx])
18
36
 
19
- print("Count: ",count[idx])
37
+ print("Count: [RAW] ",count[idx])
38
+
39
+ # print(count)
40
+
41
+
42
+
43
+ print("1以上の条件あり Numpy")
44
+
45
+ arr, count = arr[1:], count[1:]
46
+
47
+ idx = np.argmax(count)
48
+
49
+ print("Maximum index: ",arr[idx])
50
+
51
+ print("Count: ",count[idx])
52
+
53
+
54
+
55
+ print("1以上の条件あり Scipy")
56
+
57
+ Bmode = stats.mode(img[img>0])[0][0]
58
+
59
+ print(Bmode)
60
+
61
+
20
62
 
21
63
  ```
22
64
 
23
65
  ![イメージ説明](6d4b1298e2f1e9167a17989ff10730de.png)
24
-
25
-
26
-
27
- ---
28
-
29
- `Bmode = stats.mode(img)[0][0] `という風にやると、171x231ピクセルの画像の171側に対して集計してしまうのでおかしなことになるようです。もし`stats.mode`をするのであれば、`Bmode = stats.mode(img.flatten())`のように一列につらつらとピクセルが並ぶようにしてください。

1

stats追加

2020/11/22 03:22

投稿

退会済みユーザー
test CHANGED
@@ -21,3 +21,9 @@
21
21
  ```
22
22
 
23
23
  ![イメージ説明](6d4b1298e2f1e9167a17989ff10730de.png)
24
+
25
+
26
+
27
+ ---
28
+
29
+ `Bmode = stats.mode(img)[0][0] `という風にやると、171x231ピクセルの画像の171側に対して集計してしまうのでおかしなことになるようです。もし`stats.mode`をするのであれば、`Bmode = stats.mode(img.flatten())`のように一列につらつらとピクセルが並ぶようにしてください。