Python Forum
identify not white pixels in bmp
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
identify not white pixels in bmp
#16
Hi,

sorry for not spotting the error, I didn't expect it there and overread it.

Unfortunately I don't know how to deal with a grainy scan. Testing "clean" color bitmaps worked fine.
Perhaps it is possible to count rgb values which are nearly the same. I will try to think about it tomorrow...

Testing different values for x in comparison using every pixel worked for some test scans - there were nearly the same results (primary color ratio, filled ratio).

(Would it be good to test a page perhaps several times and choose pixel randomly, to get a better result?)

import numpy as np
from pdf2image import convert_from_path
from PIL import Image
import time


def primary_color_ratio(pdf_name):
    """Return ratio of pixels that are the "background" color."""
    pages = convert_from_path(pdf_name, 300)
    bmp = pages[0].save("bmp.bmp", "BMP")
    image_rgb = np.array(Image.open("bmp.bmp").convert('RGB'))
    #examine just every xth pixel
    rgb = np.array(image_rgb).reshape(-1, 3)[::x]
    #get 24Bit Color
    b24 = rgb[:, 0] * 65536 + rgb[:, 1] * 256 + rgb[:, 2]
    _, counts = np.unique(b24, return_counts=True)
    return max(counts) / max(len(b24), 1)

#examine every xth pixel
x = 100
#"filled" is the content that can be read by humans (for example: writing)
#"userdef_image_filled_ratio_whole_page": the ratio at which an image is considered filled
userdef_image_filled_ratio_whole_page = 0.2
userdef_image_filled_ratio_x = userdef_image_filled_ratio_whole_page / x
pdf_name = "t2.pdf"
startTime = time.time()
primColorRatio = primary_color_ratio(pdf_name)
print("primColorRatio = " + str(primColorRatio))
filled_ratio = 1 - primColorRatio
endTime = time.time()
print("filled_ratio = " + str(filled_ratio))
print(endTime - startTime)
if filled_ratio >= userdef_image_filled_ratio_whole_page:
    print("The image is filled.")
else:
    print("The image is empty.")
Reply


Messages In This Thread
identify not white pixels in bmp - by flash77 - Sep-24-2023, 10:07 AM
RE: identify not white pixels in bmp - by DPaul - Sep-24-2023, 12:50 PM
RE: identify not white pixels in bmp - by flash77 - Sep-24-2023, 02:28 PM
RE: identify not white pixels in bmp - by ALIII - Sep-24-2023, 02:51 PM
RE: identify not white pixels in bmp - by flash77 - Oct-04-2023, 04:47 AM
RE: identify not white pixels in bmp - by flash77 - Oct-05-2023, 05:16 PM
RE: identify not white pixels in bmp - by flash77 - Oct-05-2023, 07:52 PM
RE: identify not white pixels in bmp - by flash77 - Oct-07-2023, 04:58 PM
RE: identify not white pixels in bmp - by flash77 - Oct-07-2023, 07:48 PM
RE: identify not white pixels in bmp - by flash77 - Oct-08-2023, 09:21 PM
RE: identify not white pixels in bmp - by flash77 - Oct-09-2023, 06:18 AM
RE: identify not white pixels in bmp - by flash77 - Nov-10-2023, 09:21 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Need help to identify CNA for automation qatester 0 76 Yesterday, 09:24 AM
Last Post: qatester
  guys please help me , pycharm is not able to identify my xlsx file CrazyGreenYT7 1 2,084 Jun-13-2021, 02:22 PM
Last Post: Larz60+
  Need to identify only files created today. tester_V 5 4,820 Feb-18-2021, 06:32 AM
Last Post: tester_V
  pillow reversing the order of pixels after every row johnEmScott 4 3,226 May-27-2020, 09:42 AM
Last Post: scidam
  Need to identify sheet color in excel workbook chewy1418 2 2,603 Feb-14-2020, 03:26 PM
Last Post: chewy1418
  Convert 400 grayscale pixels into RGB python420 1 2,520 Jan-02-2020, 04:19 PM
Last Post: Clunk_Head
  Need help to identify Mersenne Primes, I do need a search pattern. Pleiades 0 1,996 Dec-03-2019, 11:05 PM
Last Post: Pleiades
  White spaces kdiba 1 2,030 Oct-08-2019, 06:52 PM
Last Post: Aurthor_King_of_the_Brittons
  including the white space parts in str.split() Skaperen 6 3,408 Jun-20-2019, 06:03 PM
Last Post: Skaperen
  replace white space with a string, is this pythonic? Skaperen 1 2,067 Jun-18-2019, 11:36 PM
Last Post: metulburr

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020