Python – NumPyで画像を配列として取得する

このエントリーをはてなブックマークに追加
Pocket
LINEで送る

(533, 800) uint8
[[156 159 162 …, 135 132 130]
[156 155 155 …, 133 132 133]
[155 153 155 …, 134 133 131]
…,
[ 87 88 85 …, 71 71 70]
[ 86 87 87 …, 70 72 73]
[ 89 95 95 …, 74 73 73]]

と表示される。最初の行のタプルは、(行数、列数、色数)を表してる。上記はグレースケールに変換しており、その場合は、色数は表示されない。uint8は、要素のデータ型。通常、画像は符号なし8ビット整数で符号化されるらしい。im自体を出力したら上記のような配列が表示された。

これだとグレースケール変換していないので、下記のように色数も表示される。赤、緑、青という並びなんだろうか。
(533, 800, 3) uint8

これだと、色が3色があるので、配列は下記のようになっている。

[[[150 156 178]
[153 159 181]
[154 162 183]
…,
[121 137 163]
[119 134 163]
[116 131 162]]

[[148 156 177]
[149 155 177]
[149 155 177]
…,
[119 135 161]
[118 134 160]
[119 134 165]]

[[147 155 176]
[147 153 175]
[149 155 177]
…,
[120 136 162]
[119 135 161]
[118 132 167]]

…,
[[ 88 88 86]
[ 88 89 84]
[ 86 86 84]
…,
[ 72 71 76]
[ 72 71 76]
[ 71 70 75]]

[[ 87 87 85]
[ 87 88 83]
[ 88 88 86]
…,
[ 69 70 74]
[ 71 72 76]
[ 72 73 77]]

[[ 91 90 86]
[ 97 96 92]
[ 96 95 93]
…,
[ 73 74 78]
[ 72 73 77]
[ 72 73 77]]]

色を反転させて保存する

これはhtmlでつかってる0-255の数字と一緒であります。各数値を255から引くことで色を反転させることができます。

下記のようになりました。

img2

配列から画像を作ってみる

下記のようにすると、白から黒に向けたグラデーションになる。[赤、緑、青]なので、赤を全部0にすると、青緑の薄いから濃いのグラデーションになる。

img2.jpg
img2

img3.jpg
img3

このエントリーをはてなブックマークに追加
Pocket
LINEで送る

Be the first to commenton "Python – NumPyで画像を配列として取得する"

Leave a comment

Your email address will not be published.


*