質問編集履歴
1
コードのコードの修正を行いました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,13 +3,19 @@
|
|
3
3
|
コードはhttps://github.com/joelgrus/data-science-from-scratch/blob/master/code/clustering.pyのを使用しています。
|
4
4
|
実現したいことは、画像の色にクラスタリングをかけて少ない色で画像を表示させたいです。
|
5
5
|
コード中ではK=5となっているので画像の色を5色で表現したいです。
|
6
|
+
現在は処理を行うと真っ黒の画像が表示させてしまいます。
|
7
|
+
mpimg.imreadが画像を配列にしているのはわかったのですがその後、どのような処理が行われているのかも教えていただきたいです。
|
6
8
|
|
7
9
|
###発生している問題・エラーメッセージ
|
8
10
|
画像を指定して実行したみたのですがoverflowとなってしまい結果が出力されません。
|
9
11
|
またどのように改良すれば良いのかわからず困っています。
|
10
12
|
```
|
13
|
+
/Users/Desktop/Python19-5.py:35: RuntimeWarning: overflow encountered in ubyte_scalars
|
14
|
+
return sum(v_i * w_i for v_i, w_i in zip(v, w))
|
11
|
-
/
|
15
|
+
/Users/Desktop/Python19-5.py:18: RuntimeWarning: overflow encountered in ubyte_scalars
|
16
|
+
return [v_i - w_i for v_i, w_i in zip(v,w)]
|
12
|
-
/
|
17
|
+
/Users/Desktop/Python19-5.py:14: RuntimeWarning: overflow encountered in ubyte_scalars
|
18
|
+
return [v_i + w_i for v_i, w_i in zip(v,w)]
|
13
19
|
```
|
14
20
|
|
15
21
|
###該当のソースコード
|
@@ -106,6 +112,9 @@
|
|
106
112
|
|
107
113
|
path_to_png_file = r"画像のある場所"
|
108
114
|
img = mpimg.imread(path_to_png_file)
|
115
|
+
top_row = img[0]
|
116
|
+
top_left_pixel = top_row[0]
|
117
|
+
red, green, blue = top_left_pixel
|
109
118
|
pixels = [pixel for row in img for pixel in row]
|
110
119
|
clusterer = KMeans(k)
|
111
120
|
clusterer.train(pixels) # this might take a while
|