我是python新手,尝试获取第80行中的每一个80像素,以下是我的代码:
from PIL import Image
im = Image.open("UIC.bmp")
size = (list(im.size)) # size is 1200x800
pixel_row = []
for y in range(0,1200, 80):
print(y)
for x in range(0, 800, 80):
print(x)
cordinate = x, y
pixel_row.append(im.getpixel(cordinate))
print(pixel_row)
完成后,我使用以下代码解码文本:
print(pixel_list)
decode_list = []
for i in range(len(pixel_list)):
decode_list.append(chr(pixel_list[i] - 100))
decode_text = ''.join(decode_list)
print(decode_text)
它给出了一个错误:
Traceback (most recent call last):
File "/Users/apple/Desktop/projects/BariySatarov/test.py", line 13, in <module>
pixel_row.append(im.getpixel(cordinate)[2])
File "/Users/apple/Desktop/projects/BariySatarov/venv/lib/python3.8/site-packages/PIL/Image.py", line 1358, in getpixel
return self.im.getpixel(xy)
IndexError: image index out of range
我不知道该怎么计算,因为我得到的范围与图片的范围相同
p.S.试图将范围(01199,80)和范围(0799,80)放在一起,但它不起作用
你必须在x和y之间切换
x表示列,而不是行
您可以为此使用numpy和数组索引:
相关问题 更多 >
编程相关推荐