postgres
postgres

Reputation: 2262

How can i check in numpy if a binary image is almost all black?

How can i see in if a binary image is almost all black or all white in numpy or scikit-image modules ?

I thought about numpy.all function or numpy.any but i do not know how neither for a total black image nor for a almost black image.

Upvotes: 0

Views: 2283

Answers (2)

reptilicus
reptilicus

Reputation: 10397

Assuming that all the pixels really are ones or zeros, something like this might work (not at all tested):


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

Upvotes: 2

aha
aha

Reputation: 4624

Here is a list of ideas I can think of:

  1. get the np.sum() and if it is lower than a threshold, then consider it almost black
  2. calculate np.mean() and np.std() of the image, an almost black image is an image that has low mean and low variance

Upvotes: 2

Related Questions