我有一张有两种颜色的照片,黑色和红色,我需要能够计算出照片中有多少像素是红色的,有多少是黑色的。
我将代码从0xd3更正为实际工作:
from PIL import Image
im = Image.open('black.jpg')
black = 0
red = 0
for pixel in im.getdata():
if pixel == (0, 0, 0): # if your image is RGB (if RGBA, (0, 0, 0, 255) or so
black += 1
else:
red += 1
print('black=' + str(black)+', red='+str(red))
根据http://personal.denison.edu/~bressoud/cs110-f12/Supplements/JESHelp/7_Picture_Functions.html,JES提供了一些简单的功能,可以满足您的所有需求,还有类似的功能
black = makeColor(0, 0, 0)
red = makeColor(255, 0, 0)
numblacks = numreds = 0
for pixel in getPixels(picture):
color = getColor(pixel)
if color == black: numblacks += 1
elif color == red: numreds += 1
应该可以轻松地完成您所需要的一切(在导入任何可能需要的东西以使函数可用之后——我没有JES,以前也从未见过或使用过它;我只有通过网络搜索找到的文档)。
然而,这似乎太简单了,我想肯定还有更多——我无法想象有人会"坚持三天"(!)。但是,如果我怀疑还有更多的问题,你必须告诉我们——这个代码到底出了什么问题(加上导入、定义、返回或打印,或者你的确切分配要求的任何东西),似乎是在使用JES的函数来琐碎地解决问题?!除非你帮我们,否则我们帮不了你!
首先需要安装抱枕库。
sudo pip3安装枕头
from PIL import *
im = Image.open("your picture")
for pixel in im.getdata():
if pixel is (0,0,0):
black += 1
else:
red += 1
print("black = " + black + "red = " + red)