画像処理はじめました。

AI/AR/VRという近未来的な言葉に惹かれ、その技術分野に参戦するために立ち上げたブログです。日々の格闘結果を記録に残してゆこうと思います。

1-4 「輝度反転」

モチベーション

画像の細かいディテールを確認する場合に、反転前後の画像を比較すると見つけやすくなるかもしれません。

やり方

PILライブラリを使用し、グレースケールで画像を読み込みます。読み込んだ画像は、uint8型なので 0~255 の値をとります。輝度反転(白黒反転)するために、入力画像の画素値を 255 から引いています。

プログラム

グレー画像をPILで取得しNumpy配列化後、画素値(輝度値)を255から引くことで反転画像を取得します。

#!/usr/bin/python
# -*- coding: utf-8 -*-

# 輝度反転

from PIL import Image 
import numpy as np
from matplotlib import pylab as plt

# 画像の読み込み
im = np.array(Image.open('input.bmp').convert('L'))
print(im.shape, im.dtype)
# ((540L, 960L), dtype('uint8'))

# 画像の表示
plt.title("before")
plt.gray()           # 表示カラーマップをグレースケールとする
plt.imshow(im)
plt.show()

# 読み込んだ画像は、uint8型なので 0~255 の値をとる
# 輝度反転するためには、入力画像の画素値を 255 から引く
im = 255 - im[:,:]

print(im.shape, im.dtype)
# ((540L, 960L), dtype('uint8'))

# 画像の表示
plt.title("after")
plt.imshow(im)
plt.show()

#保存
Image.fromarray(im).save('output.bmp')

実行結果

f:id:genetaka1810:20191103163811p:plain