如何计算python中某种颜色的像素数?

时间:2015-02-18 04:50:34

标签: python jes

我有两种颜色的图片,黑色和红色,我需要能够计算图片中有多少像素为红色,有多少是黑色。

3 个答案:

答案 0 :(得分:7)

我将代码从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))

答案 1 :(得分:3)

根据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,也没有我以前见过或使用它;我所拥有的就是我找到的那个文档网络搜索)。

然而,这似乎很容易,我想必须有更多 - 我无法想象任何人“坚持这三天”(!)。但是,如果我怀疑还有更多,必须是告诉我们的那个 - 这个代码究竟出了什么问题(加上任何进口,def,返回或打印等等,你的确切任务需要)似乎使用JES的功能来轻松解决问题?!除非您帮助我们,否则我们无法帮助您!

答案 2 :(得分:1)

首先你需要安装枕头库。

  

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)