2-1 「バイアス調整」
モチベーション
画像全体を明るくしたり暗くしたりできます。
やり方
PILライブラリを使用し画像を読み込みます。
各画素値にバイアス値を加えて作成します。
プログラム
#!/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')) print(im.shape, im.dtype) # 画像の表示 plt.title("before") plt.imshow(im) plt.show() # 画像サイズを取得 height= im.shape[0] width = im.shape[1] # バイアス値 b = 70 ##全画素を走査し、バイアス値を加算する for x in range(height): for y in range(width): # im[x,y,0]で、座標x,yのカラー情報(赤)を取得する # グレースケール画像の場合は、R,G,Bの値が同じとなるので、1色分を参照する p = im[x,y,0] + b # 画素値は255でクリッピングする if p > 255: im[x,y] = 255 elif p < 0: im[x,y] = 0 else: im[x,y]=p # 画像の表示 plt.title("after") plt.imshow(im) plt.show() #保存 Image.fromarray(im).save('output.bmp')
実行結果
解説
各画素値にバイアス値70を加えています。
そのため元の画像よりも明るい画像が得られます。モノクロ8ビット画像の場合、画素値の最大値は255ですので、バイアス値を加えた結果が70を超える場合は、255にクリッピングしています。
同様に負のバイアス値を設定し、画素値とバイアス値の加算結果がマイナスになる場合は、画素値の下限値を0としています。