だから私はプロットしたい曲線のx値とy値をnumpy配列のfloat値として保持しています。ここで、それらを最も近いintに丸めて、空のPILイメージにピクセル値としてプロットします。xベクトルとyベクトルを実際に埋める方法を除いて、これが私たちが取り組んでいるものです:
# create blank image
new_img = Image.new('L', (500,500))
pix = new_img.load()
# round to int and convert to int
xx = np.rint(x).astype(int)
yy = np.rint(y).astype(int)
ordered_pairs = set(zip(xx, yy))
for i in ordered_pairs:
pix[i[0], i[1]] = 255
これにより、エラーメッセージが表示されます。
File "makeCurves.py", line 105, in makeCurve
pix[i[0], i[1]] = 255
TypeError: an integer is required
ただし、.astype(int)
これらの子犬を整数にキャストする必要があるため、これは私には意味がありません。私が使用すればpix[int(i[0]], int(i[1])]
それは機能しますが、それはひどいです。
.astype(int)
PILによってintとして認識されないのはなぜですか?