如何在numpy中检查二进制图像是否几乎全部为黑色?
我想知道怎么用numpy或者scikit-image这两个模块来判断一张二进制图像是不是几乎全黑或者全白。
我考虑过用numpy.all
函数或者numpy.any
,但是我不知道怎么判断一张完全黑的图像或者几乎黑的图像。
2 个回答
2
这里有一些我想到的想法:
- 使用
np.sum()
这个函数,如果结果小于某个设定的值,就可以认为这张图片几乎是黑色的。 - 计算这张图片的
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