我有一个黑白的bmp图像,我需要一次访问1个像素。我在网上找到了以下代码,但不是每个位的值为1或0,而是255或0。
import Image
img = Image.open(filename)
img = img.convert('1')
pix = img.load()
我自己逐个像素地进行转换非常慢。
有人可以告诉我为什么上述方法不起作用吗?
答案 0 :(得分:2)
你可以像这样转换它:
img.point(lambda x: bool(x))
但为什么你首先需要它是0/1(而不是0/255)?
答案 1 :(得分:-1)
也许numpy是一个很好的解决方案:
<script>
如果您想将其转换回图片:
import numpy as np
from PIL import Image
#here, the image will be a numpy array
img = np.array(Image.open(filename)) / 255.
一点点细节:转换为numpy会翻转x和y。转换回来将恢复原始位置。