質問編集履歴

2

codeの修正をしました

2019/05/31 08:25

投稿

Mr_K
Mr_K

スコア28

test CHANGED
File without changes
test CHANGED
@@ -7,6 +7,8 @@
7
7
  前回,質問した時にヒストグラムに渡せていなかったので追加しました.が以下のようにエラーが出てしまいまいました.
8
8
 
9
9
  何も返せていないということなのですが,どこで誤っているのかわかりません.
10
+
11
+ やりたいことは分割してそれぞれで算出したHSVをヒストグラムにしたいです.
10
12
 
11
13
 
12
14
 
@@ -76,10 +78,6 @@
76
78
 
77
79
  ranges = [0,180,0,256,0,256]
78
80
 
79
- hist = cv2.calcHist([img],channels,mask,histSize,ranges)
80
-
81
-
82
-
83
81
 
84
82
 
85
83
  h,w = img.shape[0:2]
@@ -98,7 +96,13 @@
98
96
 
99
97
  features.append(v_img)
100
98
 
99
+ hist = cv2.calcHist([v_img],channels,mask,histSize,ranges)
100
+
101
+ hist_vec = hist.flatten()
102
+
103
+ n_hist_vec = hist_vec / hist_vec.sum()
104
+
101
- features = features.extend(hist)
105
+ features = features.extend(n_hist_vec)
102
106
 
103
107
  return features
104
108
 
@@ -122,6 +126,4 @@
122
126
 
123
127
  plt.show()
124
128
 
125
-
126
-
127
129
  ```

1

codeの修正をしました

2019/05/31 08:25

投稿

Mr_K
Mr_K

スコア28

test CHANGED
@@ -1 +1 @@
1
- 画像分割をして特徴分析したい
1
+ 画像分割をして特徴分析したいがヒストグラムに渡せない?
test CHANGED
@@ -2,37 +2,25 @@
2
2
 
3
3
  どなたかご教授ください
4
4
 
5
+
6
+
7
+ 前回,質問した時にヒストグラムに渡せていなかったので追加しました.が以下のようにエラーが出てしまいまいました.
8
+
9
+ 何も返せていないということなのですが,どこで誤っているのかわかりません.
10
+
11
+
12
+
5
13
  ```エラー文
6
14
 
7
- (240, 320, 3) -> (240, 318, 3)
15
+ (264, 352, 3) -> (264, 351, 3)
8
16
 
9
17
  Traceback (most recent call last):
10
18
 
11
- File "image_descriptor.py", line 38, in <module>
19
+ File "image_descriptor.py", line 46, in <module>
12
20
 
13
- plt.bar(x,features)
21
+ x = range(len(features))
14
22
 
15
- File "C:\Users\mkou0\AppData\Local\Continuum\anaconda3\lib\site-packages\matplotlib\pyplot.py", line 2457, in bar
16
-
17
- **({"data": data} if data is not None else {}), **kwargs)
18
-
19
- File "C:\Users\mkou0\AppData\Local\Continuum\anaconda3\lib\site-packages\matplotlib\__init__.py", line 1810, in inner
20
-
21
- return func(ax, *args, **kwargs)
22
-
23
- File "C:\Users\mkou0\AppData\Local\Continuum\anaconda3\lib\site-packages\matplotlib\axes\_axes.py", line 2251, in bar
24
-
25
- np.atleast_1d(x), height, width, y, linewidth)
26
-
27
- File "C:\Users\mkou0\AppData\Local\Continuum\anaconda3\lib\site-packages\numpy\lib\stride_tricks.py", line 259, in broadcast_arrays
28
-
29
- shape = _broadcast_shape(*args)
30
-
31
- File "C:\Users\mkou0\AppData\Local\Continuum\anaconda3\lib\site-packages\numpy\lib\stride_tricks.py", line 193, in _broadcast_shape
32
-
33
- b = np.broadcast(*args[:32])
34
-
35
- ValueError: shape mismatch: objects cannot be broadcast to a single shape
23
+ TypeError: object of type 'NoneType' has no len()
36
24
 
37
25
  ```
38
26
 
@@ -45,10 +33,6 @@
45
33
  import cv2
46
34
 
47
35
  import matplotlib.pyplot as plt
48
-
49
- #追加したライブラリ
50
-
51
- import argparse
52
36
 
53
37
  import numpy as np
54
38
 
@@ -78,9 +62,27 @@
78
62
 
79
63
  num_hsplits = 3
80
64
 
65
+
66
+
81
67
  img = cv2.imread(filename)
82
68
 
69
+ img = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)#RGB空間からHSV空間に変換
70
+
71
+ channels = [0,1,2]
72
+
73
+ mask = None #画像マスクを使用しない
74
+
75
+ #histSize =[10,4,4]
76
+
77
+ ranges = [0,180,0,256,0,256]
78
+
79
+ hist = cv2.calcHist([img],channels,mask,histSize,ranges)
80
+
81
+
82
+
83
+
84
+
83
- h,w = img.shape[:2]
85
+ h,w = img.shape[0:2]
84
86
 
85
87
  crop_img = img[:h // num_vsplits * num_vsplits, :w// num_hsplits * num_hsplits]
86
88
 
@@ -96,7 +98,7 @@
96
98
 
97
99
  features.append(v_img)
98
100
 
99
- #features = np.array(features)
101
+ features = features.extend(hist)
100
102
 
101
103
  return features
102
104
 
@@ -108,9 +110,11 @@
108
110
 
109
111
  img_dsc = ImageDescriptor(histSize)
110
112
 
111
- filename = './imagefile/database/1.jpg'
113
+ filename = './holidays/database/10.jpg'
112
114
 
113
115
  features = img_dsc.describe(filename)
116
+
117
+ print(type(features))
114
118
 
115
119
  x = range(len(features))
116
120
 
@@ -118,4 +122,6 @@
118
122
 
119
123
  plt.show()
120
124
 
125
+
126
+
121
127
  ```