Skip to content

Commit

Permalink
Merge pull request Stirling-Tools#588 from Emad-Eldin-G/patch-1
Browse files Browse the repository at this point in the history
Optimized the code in detect-blank-pages.py
  • Loading branch information
Frooodle authored Dec 28, 2023
2 parents 4e991e7 + b7f62a6 commit e4fb64c
Showing 1 changed file with 8 additions and 18 deletions.
26 changes: 8 additions & 18 deletions scripts/detect-blank-pages.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import cv2
import sys
import argparse
import numpy as np

def is_blank_image(image_path, threshold=10, white_percent=99, white_value=255, blur_size=5):
image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)

if image is None:
print(f"Error: Unable to read the image file: {image_path}")
return False
Expand All @@ -15,19 +16,11 @@ def is_blank_image(image_path, threshold=10, white_percent=99, white_value=255,
_, thresholded_image = cv2.threshold(blurred_image, white_value - threshold, white_value, cv2.THRESH_BINARY)

# Calculate the percentage of white pixels in the thresholded image
white_pixels = 0
total_pixels = thresholded_image.size
for i in range(0, thresholded_image.shape[0], 2):
for j in range(0, thresholded_image.shape[1], 2):
if thresholded_image[i, j] == white_value:
white_pixels += 1
white_pixel_percentage = (white_pixels / (i * thresholded_image.shape[1] + j + 1)) * 100
if white_pixel_percentage < white_percent:
return False
white_pixels = np.sum(thresholded_image == white_value)
white_pixel_percentage = (white_pixels / thresholded_image.size) * 100

print(f"Page has white pixel percent of {white_pixel_percentage}")
return True

return white_pixel_percentage >= white_percent


if __name__ == "__main__":
Expand All @@ -39,9 +32,6 @@ def is_blank_image(image_path, threshold=10, white_percent=99, white_value=255,

blank = is_blank_image(args.image_path, args.threshold, args.white_percent)

if blank:
# Return code 1: The image is considered blank.
sys.exit(1)
else:
# Return code 0: The image is not considered blank.
sys.exit(0)
# Return code 1: The image is considered blank.
# Return code 0: The image is not considered blank.
sys.exit(int(blank))

0 comments on commit e4fb64c

Please sign in to comment.