質問編集履歴
2
codeの修正をしました
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の修正をしました
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
|
-
(24
|
15
|
+
(264, 352, 3) -> (264, 351, 3)
|
8
16
|
|
9
17
|
Traceback (most recent call last):
|
10
18
|
|
11
|
-
File "image_descriptor.py", line
|
19
|
+
File "image_descriptor.py", line 46, in <module>
|
12
20
|
|
13
|
-
|
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
|
-
|
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
|
-
|
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 = './i
|
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
|
```
|