2
ピローとnumpyを使用してイメージの色を修正しようとしています。 n.s.arrayと組み合わせてim.split()を使用する。ピット/ numpyを使用して分割バンドのいずれかで.dotを実行した後、分割イメージをマージすることはできません
私は赤いバンドのすべての色を掛けたいですが、その方法を見つけることができません。
私は物事のすべての種類を試してみたとグーグルの多くは、これが解決策になることを期待していた後:
from PIL import Image
import numpy as np
im=Image.open('test.jpg')
r,g,b=im.split()
datar = np.array(r)
datag = np.array(g)
datab = np.array(b)
rm=0.4 # the value I would like to multiply all red pixels by
datar=datar.dot(rm) # this works, but turns the values in the array into floats
datar=datar.astype(int) # I was hoping this would solve it
im=Image.merge("RGB", (Image.fromarray(datar), Image.fromarray(datag), Image.fromarray(datab)))
私は配列でたくさんのことを行うことができますし、マージが成功しますが、これは私に次のエラーを与えるしよう:
im=Image.merge("RGB", (Image.fromarray(datar), Image.fromarray(datag), Image.fromarray(datab)))
File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 2408, in merge
im.putband(bands[i].im, i)
ValueError: images do not match
配列は.DOTと.astype(int型)の前後で同じに見える適用され、値が正しく掛けています。