如果二进制图像几乎全黑,我该如何检查numpy?

时间:2014-03-24 20:04:59

标签: python opencv image-processing numpy scikit-image

如果在numpy或scikit-images模块中二进制图像几乎全黑或全白,我怎能看到?

我考虑过numpy.all函数或numpy.any,但我不知道整个黑色图像和近乎黑色图像的效果如何。

2 个答案:

答案 0 :(得分:2)

以下列出了我能想到的想法:

  1. 获取np.sum(),如果它低于阈值,则认为它几乎是黑色
  2. 计算图像的np.mean()np.std(),近乎黑色的图像是平均值低且方差小的图像

答案 1 :(得分:2)

假设所有像素都是1或0,这样的东西可能会起作用(完全不测试):


def is_sorta_black(arr, threshold=0.8):
    tot = np.float(np.sum(arr))
    if tot/arr.size  > (1-threshold):
       print "is not black" 
       return False
    else:
       print "is kinda black"
       return True