所以我正在做一个小型研究项目,其中的一部分涉及到我必须获取与某种颜色相对应的图像的像素坐标。此处显示了示例图像(名为testpic.png):
我要做的是确定所有绿松石色点的位置。但是,以下代码(改编自Find pixels with given RGB colors)给了我错误:“ AttributeError:'PngImageFile'对象没有属性'read'””,我不确定发生了什么。
from PIL import Image
myImage = Image.open("testpic.png")
def find_turq_pixels(image_name):
# Set the value you want for these variables
r_min = 0
r_max = 65
g_min = 220
g_max = 255
b_min = 220
b_max = 255
turq_pixels = set()
img = Image.open(image_name)
rgb = img.convert('rgb')
for x in range(img.size[0]):
for y in range(img.size[1]):
r, g, b = rgb.getpixel((x, y))
if r >= r_min and r <= r_max and b >= b_min and b <= b_max and g >= g_min and g <= g_max:
turq_pixels.add((x,y))
return turq_pixels
print(find_turq_pixels(myImage))
我当前正在使用Python 3.7,并且如果我正确安装了所有内容,则python表示“ PIL.PILLOW_VERSION”正在运行5.4.1。 python文件和图像文件也位于同一文件夹中,以防引起错误。这是我多年来第一次使用Python,如果我对此非常愚蠢,请提前道歉,因为我已经忘记了很多编程知识,但是如果有人可以帮助我解决此问题,将不胜感激!谢谢:)
答案 0 :(得分:0)
只有几个小错误...
删除此行:
myImage = Image.open("testpic.png")
更改此行:
print(find_turq_pixels(myImage))
到
print(find_turq_pixels("testpic.png"))
更改此行:
rgb = img.convert('rgb')
收件人:
rgb = img.convert('RGB')
然后一切正常。