回答編集履歴

2

d

2020/04/23 09:28

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1,3 +1,33 @@
1
+ cv2.calcHist() で1次元のヒストグラムを作成した際、返り値は形状が `(ビンの数, 1)` の2次元の numpy 配列になっています。
2
+
3
+ これを ndarray.squeeze(axis=-1) で `(n_bins,)` という1次元の numpy 配列に変換してから、hv.Curve() に渡すと描画できます。
4
+
5
+
6
+
7
+ ```python
8
+
9
+ a = np.array([1, 2, 3]) # 形状が (3,) の1次元配列
10
+
11
+ b = np.array([[1], [2], [3]]) # 形状が (3, 1) の2次元配列
12
+
13
+ c = b.squeeze(axis=1) # 形状が (3, 1) から (3,) になる。
14
+
15
+ ```
16
+
17
+
18
+
19
+ 以下を参考にしてください。
20
+
21
+
22
+
23
+ [OpenCV で画像のヒストグラムを作成する方法](https://pystyle.info/opencv-histogram/)
24
+
25
+
26
+
27
+ ## 修正後のコード
28
+
29
+
30
+
1
31
  ```python
2
32
 
3
33
  import cv2
@@ -30,30 +60,4 @@
30
60
 
31
61
 
32
62
 
33
- cv2.calcHist() で1次元のヒストグラムを作成した際、返り値は形状が `(ビンの数, 1)` の2次元の numpy 配列になっています。
34
-
35
- これを ndarray.squeeze(axis=-1) で `(n_bins,)` という1次元の numpy 配列に変換してから、hv.Curve() に渡すと描画できます。
36
-
37
-
38
-
39
- ```python
40
-
41
- a = np.array([1, 2, 3]) # 形状が (3,) の1次元配列
42
-
43
- b = np.array([[1], [2], [3]]) # 形状が (3, 1) の2次元配列
44
-
45
- c = b.squeeze(axis=1) # 形状が (3, 1) から (3,) になる。
46
-
47
- ```
48
-
49
-
50
-
51
- 以下を参考にしてください。
52
-
53
-
54
-
55
- [OpenCV で画像のヒストグラムを作成する方法](https://pystyle.info/opencv-histogram/)
56
-
57
-
58
-
59
63
  ![イメージ説明](f35178dc2aa325d2606eda5da45262e0.png)

1

d

2020/04/23 09:28

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -30,9 +30,21 @@
30
30
 
31
31
 
32
32
 
33
- cv2.calcHist() で1次元のヒストグラムを作成した際、返り値は `(ビンの数, 1)` という2次元の numpy 配列になっています。
33
+ cv2.calcHist() で1次元のヒストグラムを作成した際、返り値は形状が `(ビンの数, 1)` 2次元の numpy 配列になっています。
34
34
 
35
35
  これを ndarray.squeeze(axis=-1) で `(n_bins,)` という1次元の numpy 配列に変換してから、hv.Curve() に渡すと描画できます。
36
+
37
+
38
+
39
+ ```python
40
+
41
+ a = np.array([1, 2, 3]) # 形状が (3,) の1次元配列
42
+
43
+ b = np.array([[1], [2], [3]]) # 形状が (3, 1) の2次元配列
44
+
45
+ c = b.squeeze(axis=1) # 形状が (3, 1) から (3,) になる。
46
+
47
+ ```
36
48
 
37
49
 
38
50