如何在numpy中检查二进制图像是否几乎全部为黑色?

0 投票
2 回答
2106 浏览
提问于 2025-04-17 23:43

我想知道怎么用numpy或者scikit-image这两个模块来判断一张二进制图像是不是几乎全黑或者全白。

我考虑过用numpy.all函数或者numpy.any,但是我不知道怎么判断一张完全黑的图像或者几乎黑的图像。

2 个回答

2

这里有一些我想到的想法:

  1. 使用 np.sum() 这个函数,如果结果小于某个设定的值,就可以认为这张图片几乎是黑色的。
  2. 计算这张图片的 np.mean()(平均值)和 np.std()(标准差),一张几乎黑色的图片通常是平均值和标准差都很低的。
2

假设所有的像素确实只有0和1两种状态,那么像这样的方法可能有效(不过还没有经过测试):


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

撰写回答