def check_blank_image(file): img = cv2.imread(file) if img is None: return False # grary img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # threshold to two value image ret,thresh = cv2.threshold(img, 150, 255,cv2.THRESH_BINARY) # white % nonzero = np.count_nonzero(thresh) all = thresh.size return (nonzero / float(all)) > 0.99
解释下:先转灰度,再做二值化,然后判断白色占比。
上面的150是卡的阈值,超过150都认为是黑色设为255,小于的则认为是白色,这里要比50%的125偏黑一点,不然 字少的容易检测成白纸,卡的阀值99类似的道理。