使用 Python 成像库 PIL 如何检测图像的所有像素是黑色还是白色?
~Update~
健康)状况:Not迭代每个像素!
if not img.getbbox():
...将测试图像是否是全黑的。 (Image.getbbox()
返回假值None
如果图像中没有非黑色像素,否则返回一个点元组,这是真实的。)要测试图像是否完全白色,请先将其反转:
if not ImageChops.invert(img).getbbox():
您还可以使用img.getextrema()
。这将告诉您图像中的最高值和最低值。为了最轻松地处理这个问题,您可能应该首先将图像转换为灰度模式(否则极值可能是 RGB 或 RGBA 元组,or单个灰度值,or一个索引,你必须处理所有这些)。
extrema = img.convert("L").getextrema()
if extrema == (0, 0):
# all black
elif extrema == (1, 1):
# all white
后一种方法可能会更快,但在大多数应用程序中您不会注意到(两者都会相当快)。
上述技术的单行版本,用于测试黑色或白色:
if sum(img.convert("L").getextrema()) in (0, 2):
# either all black or all white
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)