检查图像是否为黑色

时间:2012-12-04 13:45:00

标签: android python image-processing monkeyrunner

我正在Windows下运行一个Python脚本,它处理具有32位深度的480x800 PNG图像。我需要检查给定的图像是否完全是黑色。经过一番搜索,我发现ImageMagick可以帮助我实现这一目标,但不幸的是,没有手册可以完成这项任务。

因此,更一般的问题是如何检查图像是否只包含一种颜色?

修改

我很抱歉从一开始就没有提供有关环境的所有信息。 python脚本使用Android的monkeyrunner执行。由于它使用了自己的Jython实例(版本2.5),因此无法使用外部库中的任何模块。里面有一个MonkeyImage类来处理从设备中截取的截图。所以我采纳了@ eumiro的答案。

2 个答案:

答案 0 :(得分:3)

import Image
im = Image.load("image.png")
diff_colors = list(set(im.getdata()))
if len(diff_colors) == 1 and diff_colors[0] == (0, 0, 0):
    print "all black"
编辑正如@JonClements所建议的那样,只要发现黑色以外的任何内容,这将更快并停止:

import Image
im = Image.load("image.png")
if all(rgb == (0,0,0) for rgb in im.getdata()):
    print "all black"

答案 1 :(得分:1)

我不是Python的专家,但我看到有一个PNG模块可以使用。 加载PNG并将其导出为RGB(A)数组。

检查它是否完全是黑色应该很简单。运行数组并确保没有任何区别于0。

我认为这应该有用。

出于好奇,你为什么要检查图像是否是黑色的?