回答編集履歴
3
たいぽ
test
CHANGED
@@ -140,7 +140,7 @@
|
|
140
140
|
|
141
141
|
3行目・・・左上ピクセルのB要素
|
142
142
|
|
143
|
-
4行目・・・左上ピクセルの
|
143
|
+
4行目・・・左上ピクセルのA要素
|
144
144
|
|
145
145
|
5行目・・・右上ピクセルのR要素
|
146
146
|
|
@@ -148,7 +148,7 @@
|
|
148
148
|
|
149
149
|
7行目・・・右上ピクセルのB要素
|
150
150
|
|
151
|
-
8行目・・・右上ピクセルの
|
151
|
+
8行目・・・右上ピクセルのA要素
|
152
152
|
|
153
153
|
:
|
154
154
|
|
2
誤字
test
CHANGED
@@ -1,10 +1,8 @@
|
|
1
|
-
画像をそのように読み込むと3次元配列になります
|
1
|
+
画像をそのように読み込むと3次元配列になります(高さ、横幅、RGBAチャネル)。 3次元配列はそのままでは書き出せません。1次元配列か、2次元配列なら書き出せます。
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
グレースケール化した画像はRGBAチャネルがなく2次元配列で表されるので書き出すことができます。
|
6
|
-
|
7
|
-
|
8
6
|
|
9
7
|
```python
|
10
8
|
|
@@ -14,7 +12,7 @@
|
|
14
12
|
|
15
13
|
|
16
14
|
|
17
|
-
img=Image.open("in.png").convert('L') # convert('L')はグレースケール
|
15
|
+
img=Image.open("in.png").convert('L') # convert('L')はグレースケールです。チャネルがないので縦、横の2次元です。
|
18
16
|
|
19
17
|
|
20
18
|
|
@@ -28,15 +26,7 @@
|
|
28
26
|
|
29
27
|
|
30
28
|
|
31
|
-
|
29
|
+
また、3次元配列を1次元配列に変換して書き出すこともできます。
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
こんな感じ
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
30
|
|
41
31
|
|
42
32
|
|
@@ -54,10 +44,118 @@
|
|
54
44
|
|
55
45
|
img_array=np.asarray(img)
|
56
46
|
|
57
|
-
img_array = img_array.flatten() # 3
|
47
|
+
img_array = img_array.flatten() # 3次元1次元に変換しています。
|
58
48
|
|
59
49
|
|
60
50
|
|
61
51
|
np.savetxt('out', img_array)
|
62
52
|
|
63
53
|
```
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
【例】
|
58
|
+
|
59
|
+
以下のような 2x2 ピクセルで試してみます。
|
60
|
+
|
61
|
+
![イメージ説明](078820fa6a50b8413e2b535a25ceee7e.png)
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
## 前者(グレースケール):
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
```
|
74
|
+
|
75
|
+
1.890000000000000000e+02 1.570000000000000000e+02
|
76
|
+
|
77
|
+
2.230000000000000000e+02 2.150000000000000000e+02
|
78
|
+
|
79
|
+
```
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
グレースケールなので各数値はピクセルの明るさを意味しています。
|
84
|
+
|
85
|
+
e+02は10の2乗を意味してるので、左上の数値は189(=1.89*100)と同じです。同様に右上は157、左下は223、右下は215です。
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
## 後者(flatten):
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
```
|
96
|
+
|
97
|
+
1.290000000000000000e+02
|
98
|
+
|
99
|
+
2.120000000000000000e+02
|
100
|
+
|
101
|
+
2.330000000000000000e+02
|
102
|
+
|
103
|
+
2.550000000000000000e+02
|
104
|
+
|
105
|
+
1.430000000000000000e+02
|
106
|
+
|
107
|
+
1.740000000000000000e+02
|
108
|
+
|
109
|
+
1.080000000000000000e+02
|
110
|
+
|
111
|
+
2.550000000000000000e+02
|
112
|
+
|
113
|
+
2.110000000000000000e+02
|
114
|
+
|
115
|
+
2.270000000000000000e+02
|
116
|
+
|
117
|
+
2.360000000000000000e+02
|
118
|
+
|
119
|
+
2.550000000000000000e+02
|
120
|
+
|
121
|
+
2.330000000000000000e+02
|
122
|
+
|
123
|
+
2.140000000000000000e+02
|
124
|
+
|
125
|
+
1.740000000000000000e+02
|
126
|
+
|
127
|
+
2.550000000000000000e+02
|
128
|
+
|
129
|
+
```
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
4行ごとに1つのピクセルを表してます。
|
136
|
+
|
137
|
+
1行目・・・左上ピクセルのR要素
|
138
|
+
|
139
|
+
2行目・・・左上ピクセルのG要素
|
140
|
+
|
141
|
+
3行目・・・左上ピクセルのB要素
|
142
|
+
|
143
|
+
4行目・・・左上ピクセルのR要素
|
144
|
+
|
145
|
+
5行目・・・右上ピクセルのR要素
|
146
|
+
|
147
|
+
6行目・・・右上ピクセルのG要素
|
148
|
+
|
149
|
+
7行目・・・右上ピクセルのB要素
|
150
|
+
|
151
|
+
8行目・・・右上ピクセルのR要素
|
152
|
+
|
153
|
+
:
|
154
|
+
|
155
|
+
:
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
です。
|
1
たいぽ
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
img=Image.open("in.png").convert('L') # convert('L')はグレースケール化を表しています
|
17
|
+
img=Image.open("in.png").convert('L') # convert('L')はグレースケール化(1次元)を表しています
|
18
18
|
|
19
19
|
|
20
20
|
|
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
|
50
50
|
|
51
|
-
img=Image.open("in.png")
|
51
|
+
img=Image.open("in.png")
|
52
52
|
|
53
53
|
|
54
54
|
|