Python - 找出图像中有多少是黑色的

bla*_*kbk 6 python satellite python-imaging-library

我正在下载像satellite_image这样的卫星图片 http://home.chpc.utah.edu/~u0553130/NASA_SPoRT_VIIRS_Images/VIIRS_11um_20150104_1834_UTC.gif 因为有些图像大多是黑色的,就像这个,我不想保存它.

如何使用python检查图像是否超过50%黑色?

xnx*_*xnx 9

您正在使用示例图像的外观处理大多数灰度级的GIF,因此您可能希望大多数RGB组件相同.

使用PIL:

from PIL import Image
im = Image.open('im.gif')
pixels = im.getdata()          # get the pixels as a flattened sequence
black_thresh = 50
nblack = 0
for pixel in pixels:
    if pixel < black_thresh:
        nblack += 1
n = len(pixels)

if (nblack / float(n)) > 0.5:
    print("mostly black")
Run Code Online (Sandbox Code Playgroud)

根据需要将"黑色"的阈值调整为0(投球黑)和255(亮白).

  • 遇到问题,改成`Image.open('im.gif').convert('L')` (2认同)

Tot*_*tem 0

  • 加载图片
  • 读取每个像素并在像素 = (0,0,0) 时递增结果
  • 如果结果 =< (image.width * image.height)/2
  • 保存图片

或者,例如,如果您的像素 ​​R(或 G 或 B)分量小于 15,则通过返回 true 来检查它是否几乎是黑色。