回答編集履歴
3
fix
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
n = img.astype(np.float_)
|
14
14
|
|
15
|
-
# 各画素値に p = log(p + 1) * 25
|
15
|
+
# 各画素値に p = log(p + 1) * 255/log(256) を適用
|
16
16
|
|
17
17
|
n = np.log(n + 1.) * (255. / math.log(256))
|
18
18
|
|
2
fix
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
グレイスケール画像に対して`np.log`を適用したタイミングで、結果`n`はfloat型データに自動変換されます。ただし定義上log(0)=‐∞となってしまうため、入力画素値0~255は+1して値域1~256に変換しておいた方がよいでしょう。このとき元のuint8型データのまま+1すると255は0になってしまうため、事前にfloat型に明示変換する必要があります。また対数をとると値域が小さく(log(1)〜log(256) つまり 0〜5.545...)なってしまうため、25
|
5
|
+
グレイスケール画像に対して`np.log`を適用したタイミングで、結果`n`はfloat型データに自動変換されます。ただし定義上log(0)=‐∞となってしまうため、入力画素値0~255は+1して値域1~256に変換しておいた方がよいでしょう。このとき元のuint8型データのまま+1すると255は0になってしまうため、事前にfloat型に明示変換する必要があります。また対数をとると値域が小さく(log(1)〜log(256) つまり 0〜5.545...)なってしまうため、255/log(256)でスケーリングする必要があります。
|
6
6
|
|
7
7
|
|
8
8
|
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
# 各画素値に p = log(p + 1) * 256 / log(256) を適用
|
16
16
|
|
17
|
-
n = np.log(n + 1.) * (25
|
17
|
+
n = np.log(n + 1.) * (255. / math.log(256))
|
18
18
|
|
19
19
|
# OpenCVで扱える画像データ型(uint8)に変換
|
20
20
|
|
1
fix
test
CHANGED
@@ -2,15 +2,19 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
グレイスケール画像に対して`np.log`を適用したタイミングで、結果`n`はfloat型データに変換されています。また対数をとると値域が小さく(log(1)〜log(256) つまり 0〜
|
5
|
+
グレイスケール画像に対して`np.log`を適用したタイミングで、結果`n`はfloat型データに自動変換されます。ただし定義上log(0)=‐∞となってしまうため、入力画素値0~255は+1して値域1~256に変換しておいた方がよいでしょう。このとき元のuint8型データのまま+1すると255は0になってしまうため、事前にfloat型に明示変換する必要があります。また対数をとると値域が小さく(log(1)〜log(256) つまり 0〜5.545...)なってしまうため、256/log(256)でスケーリングする必要があります。
|
6
6
|
|
7
7
|
|
8
8
|
|
9
9
|
```Python
|
10
10
|
|
11
|
+
# 明示的にfloat型に変換
|
12
|
+
|
13
|
+
n = img.astype(np.float_)
|
14
|
+
|
11
15
|
# 各画素値に p = log(p + 1) * 256 / log(256) を適用
|
12
16
|
|
13
|
-
n = np.log(
|
17
|
+
n = np.log(n + 1.) * (256. / math.log(256))
|
14
18
|
|
15
19
|
# OpenCVで扱える画像データ型(uint8)に変換
|
16
20
|
|