Image.point と Image.fromarray を使用して、画像に対してまったく同じ操作を行い、すべてのピクセルの値を同じ値だけ増やします。問題は、まったく異なるイメージに到達することです。
ポイントを使う
def getValue(val):
return math.floor(255*float(val)/100)
def func(i):
return int(i+getValue(50))
out = img.point(func)
配列とnumpyの使用
arr = np.array(np.asarray(img).astype('float'))
value = math.floor(255*float(50)/100)
arr[...,0] += value
arr[...,1] += value
arr[...,2] += value
out = Image.fromarray(arr.astype('uint8'), 'RGB')
同じ画像(jpg)を使用しています。
初期画像
ポイントのあるイメージ
配列を含む画像
どうしてそんなに違うのでしょうか?