回答編集履歴
3
一部修正
answer
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
なぜ、わざわざ64×64にリサイズしてから8×8に素朴な計算で縮小させているのか、理由が分かりません。
|
16
16
|
|
17
|
-
また、**なぜ2乗平均をしているのかも理由はわかりません**。上記のように**単純に255から引くだけでよい**と思います。「2乗平均」処理をすることで、画素の明るさが偏ってしまっています。そのため、以降の処理で本来は不要な「正規化処理」をするはめになってしまっています。
|
17
|
+
また、**なぜ2乗平均をしているのかも理由はわかりません**。上記のように**単純に255から引くだけでよい**と思います。「2乗平均」処理をすることで、画素の明るさが偏ってしまっています。そのため、以降の処理で本来は不要な「正規化処理」をするはめになってしまっています(通常、画像の正規化は単純に255で割るだけです)。
|
18
18
|
|
19
19
|
参考: [輝度反転](https://genetaka.hatenablog.com/entry/2019/11/03/164150)
|
20
20
|
|
2
補足追記
answer
CHANGED
@@ -16,6 +16,8 @@
|
|
16
16
|
|
17
17
|
また、**なぜ2乗平均をしているのかも理由はわかりません**。上記のように**単純に255から引くだけでよい**と思います。「2乗平均」処理をすることで、画素の明るさが偏ってしまっています。そのため、以降の処理で本来は不要な「正規化処理」をするはめになってしまっています。
|
18
18
|
|
19
|
+
参考: [輝度反転](https://genetaka.hatenablog.com/entry/2019/11/03/164150)
|
20
|
+
|
19
21
|
なお、蛇足ですが、正しい意味での「2乗平均」になっていないようです。
|
20
22
|
|
21
23
|
`bright = 255 - crop.mean()**2 / 255 # 平均した結果を2乗してしまっています`
|
1
一部修正
answer
CHANGED
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
> 1)コメントアウトの文章の意味
|
4
4
|
|
5
|
-
教師データにしているsklearnのload_digitsがサイズ8×8なので、一度64×64にした画像データを、再度8×8に縮小しています。64×64の画像には「小さな8×8画像」が8×8個あ
|
5
|
+
教師データにしているsklearnのload_digitsがサイズ8×8なので、一度64×64にした画像データを、再度8×8に縮小しています。64×64の画像には「小さな8×8画像」が8×8個あります(8ばかりでわかりにくいですが)。その「小さな8×8画像」(8×8個)それぞれを「1画素に縮小される範囲」と呼んで、1画素に縮小しています。結果として、縮小された1画素が8×8個になります。
|
6
6
|
|
7
7
|
文章の意味はこのとおりですが、以下で示すように、**やっていることの意味はわかりません。**
|
8
8
|
|
9
9
|
> 2)cropしてbrightにx,yでfor文で回して配列を作っている箇所
|
10
10
|
|
11
|
-
これ**全体的に全く意味がないことをやっている**と私は思います。要は8×8の画像にして白黒反転させたいだけなので、以下のように記載することで充分です。**ループ処理は一切不要**です。
|
11
|
+
これ**全体的に全く意味がないことをやっている**と私は思います。要は8×8の画像にして白黒反転させたいだけなので、以下のように記載することで充分です。x,yの**ループ処理は一切不要**です。
|
12
12
|
|
13
13
|
`new_resize_img = 255 - np.array(img.resize((8, 8)))`
|
14
14
|
|