IP Library Granted Patent US 8,705,134
Granted Patent B2
US 8,705,134 · App. 13/013,890 · Granted Apr 22, 2014

Method of processing an image to clarify text in the image

Inventors: Michael Robert Campanelli (Webster, NY); John C. Handley (Fairport, NY); Dennis L. Venable (Marion, NY)
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,705,134
App. No.
13/013,890
Granted
Apr 22, 2014
Kind
B2
Abstract

An image file representing at least a portion of a printed document is processed to highlight the differences between foreground material (e.g., text or other characters) from background. The method includes selecting a neighborhood of pixels, determining a weighted average of an attribute values (e.g., luminance) for each pixel, and modifying each pixel's value based on the weighted average. Graylevel scaling, error diffusion, and a bit level conversion are also performed each pixel ends up with either a first attribute value level (e.g., luminance of 0) or a second attribute value level (e.g., luminance of 255).

Claims (79)

1. A method of processing an image, comprising:

accessing, by a processing device, an image file containing data representing an image of at least a portion of a printed document;

selecting a neighborhood of adjacent pixels, wherein at least a portion of the pixels in the neighborhood are associated with raster content in the image and each pixel in the neighborhood has an attribute value;

determining a weighted average of the attribute values for the pixels in the neighborhood, and modifying the attribute values of at least some of the pixels in the neighborhood in accordance with the weighted average;

applying graylevel scaling to the pixels in the neighborhood to determine whether any pixel should be classified as an end range pixel, and for each classified end range pixel whose attribute value does not equal an end range level, modifying the attribute value of that pixel to be scaled to a full data range of the attribute values;

applying error diffusion to the pixels in the neighborhood to distribute the neighboring pixels over a range of attribute value levels, wherein the range is from 3 levels to 64 levels;

performing a bit level conversion to the pixels in the neighborhood so that each pixel having an attribute value that is below a midpoint is assigned a first attribute value level and each pixel having an attribute value above the midpoint is assigned a second attribute value level to yield a modified image; and

saving the modified image as a modified image file.

2. The method of claim 1 , wherein the attribute value comprises a luminance level, and the graylevel scaling comprises:

identifying a pixel set comprising the pixels in the neighborhood and a plurality of pixels that are adjacent to the pixels in the neighborhood;

identifying an upper group of pixels in the pixel set that exhibit a luminance equal to or above an upper threshold and determining a value (avgmax) equal to the average luminance of the upper group pixels;

identifying a lower group of pixels in the pixel set that exhibit a luminance equal to or below a lower threshold and determining a value (avgmin) equal to the average luminance of the lower group pixels;

determining a standard deviation for the luminance levels of the pixels in the pixel set, and also determining whether the standard deviation is greater than a difference between avgmax and avgmin;

if the standard deviation is greater than a difference between avgmax and avgmin, then modifying the luminance level of each pixel in the upper group to an upper end range level and modifying the luminance level of each pixel in the lower group to a lower end range level.

3. The method of claim 1 , wherein determining the weighted average comprises applying a filter to the pixels in the neighborhood.

4. The method of claim 1 further comprising, before the extracting:

if the image is a color image, converting the data to data representing a grayscale image.

5. The method of claim 1 wherein the range is from 4 to 8 levels.

6. The method of claim 1 , wherein the error diffusion comprises Floyd-Steinberg error diffusion.

7. The method of claim 1 , further comprising, after performing the bit level conversion, despeckling the pixels in the modified image file to remove discrete pixel noise.

8. The method of claim 1 , further comprising:

selecting a plurality of additional neighborhoods;

performing the weighted average determination, graylevel scaling, error diffusion, and bit level conversion for each of the additional neighborhoods; and

despeckling the pixels in the modified image file to remove discrete pixel noise.

9. The method of claim 1 , further comprising:

performing optical character recognition on the modified image file;

determining a number of errors in the characters processed in the optical character recognition; and

in response to the number of errors exceeding a threshold, prompting a user to re-capture the image.

10. A method of processing an image, comprising:

accessing, by a processing device, an image file containing data representing an image of at least a portion of a printed document;

in response to determining that the image is a color image, converting the data so that it represents a grayscale image;

selecting a neighborhood of adjacent pixels, wherein at least a portion of the pixels in the neighborhood are associated with raster content in the image and each pixel in the neighborhood has a luminance value;

using a filter to determine a weighted average of the attribute value for the pixels in the neighborhood, and modifying the luminance value of at least some of the pixels in the neighborhood in accordance with the weighted average;

applying graylevel scaling to the pixels in the neighborhood to determine whether any pixel should be classified as an end range pixel, and for each classified end range pixel whose luminance does not equal an end range level, modifying the luminance value of that pixel to be scaled to a full data range of the luminance values;

applying error diffusion to the pixels in the neighborhood to distribute the neighboring pixels over a range of attribute value levels, wherein the range is from 3 levels to 64 levels;

performing a bit level conversion to the pixels in the neighborhood so that each pixel having a luminance value that is below a midpoint is assigned a first attribute value level and each pixel having a luminance value above the midpoint is assigned a second luminance value level to yield a modified image; and

saving the modified image as a modified image file.

11. The method of claim 10 , wherein the graylevel scaling comprises:

identifying a pixel set comprising the pixels in the neighborhood and a plurality of pixels that are adjacent to the pixels in the neighborhood;

identifying an upper group of pixels in the pixel set that exhibit a luminance equal to or above an upper threshold and determining a value (avgmax) equal to the average luminance of the upper group pixels;

identifying a lower group of pixels in the pixel set that exhibit a luminance equal to or below a lower threshold and determining a value (avgmin) equal to the average luminance of the lower group pixels;

determining a standard deviation for the luminance levels of the pixels in the pixel set, and also determining whether the standard deviation is greater than a difference between avgmax and avgmin;

if the standard deviation is greater than a difference between avgmax and avgmin, then modifying the luminance level of each pixel in the upper group to an upper end range level and modifying the luminance level of each pixel in the lower group to a lower end range level.

12. The method of claim 10 , wherein the error diffusion comprises Floyd-Steinberg error diffusion.

13. The method of claim 10 , further comprising, after performing the bit level conversion, despeckling the pixels in the modified image file to remove discrete pixel noise.

14. The method of claim 10 , further comprising:

selecting a plurality of additional neighborhoods;

performing the weighted average determination, graylevel scaling, error diffusion, and bit level conversion for each of the additional neighborhoods; and

despeckling the pixels in the modified image file to remove discrete pixel noise.

15. The method of claim 10 , further comprising:

performing optical character recognition on the modified image file;

determining a number of errors in the characters processed in the optical character recognition; and

in response to the number of errors exceeding a threshold, prompting a user to re-capture the image.

16. An image processing system, comprising:

a processor; and

a processor-readable storage medium in communication with the processor,

wherein the processor-readable storage medium contains one or more programming instructions that, when executed, cause the processor to:

access an image file containing data representing an image of at least a portion of a printed document;

select a neighborhood of adjacent pixels, wherein at least a portion of the pixels in the neighborhood are associated with raster content in the image and each pixel in the neighborhood has an attribute value;

determine a weighted average of the attribute value for the pixels in the neighborhood;

modify the attribute value of at least some of the pixels in the neighborhood in accordance with the weighted average;

apply graylevel scaling to the pixels in the neighborhood to determine whether any pixel should be classified as an end range pixel, and for each classified end range pixel whose luminance does not equal an end range level, modify the attribute value of that pixel to be scaled to a full data range of the attribute values;

apply error diffusion to the pixels in the neighborhood to distribute the neighboring pixels over a range of attribute value levels;

perform a bit level conversion to the pixels in the neighborhood so that each pixel having an attribute value that is below a midpoint is assigned a first attribute value level and each pixel having an attribute value above the midpoint is assigned a second attribute value level to yield a modified image; and

save the modified image as a modified image file.

17. The system of claim 16 , wherein the attribute value comprises a luminance level, and the instructions that cause the processor to perform graylevel scaling comprise instructions that cause the processor to:

identify a pixel set comprising the pixels in the neighborhood and a plurality of pixels that are adjacent to the pixels in the neighborhood;

identify an upper group of pixels in the pixel set that exhibit a luminance equal to or above an upper threshold and determining a value (avgmax) equal to the average luminance of the upper group pixels;

identify a lower group of pixels in the pixel set that exhibit a luminance equal to or below a lower threshold and determining a value (avgmin) equal to the average luminance of the lower group pixels;

determine a standard deviation for the luminance levels of the pixels in the pixel set, and also determine whether the standard deviation is greater than a difference between avgmax and avgmin;

if the standard deviation is greater than a difference between avgmax and avgmin, then modify the luminance level of each pixel in the upper group to an upper end range level and modify the luminance level of each pixel in the lower group to a lower end range level.

18. The system of claim 16 wherein the instructions, when executed, also cause the processor to:

determine whether the image is a color image, and

convert color image data to data representing a grayscale image.

19. The system of claim 16 wherein the instructions, when executed, also cause the processor to, after performing the bit level conversion, despeckle the pixels in the modified image file to remove discrete pixel noise.

20. The system of claim 16 wherein the instructions, when executed, also cause the processor to:

select a plurality of additional neighborhoods;

perform the weighted average determination, graylevel scaling, error diffusion, and bit level conversion for each of the additional neighborhoods; and

despeckle the pixels in the modified image file to remove discrete pixel noise.

Assignments (9)
SECOND LIEN NOTES PATENT SECURITY AGREEMENT Recorded Jul 2, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 071785/0550 →
FIRST LIEN NOTES PATENT SECURITY AGREEMENT Recorded Apr 11, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 070824/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT RF 064760/0389 Recorded Feb 13, 2024
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: XEROX CORPORATION
Reel/Frame 068261/0001 →
SECURITY INTEREST Recorded Feb 13, 2024
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 066741/0001 →
SECURITY INTEREST Recorded Nov 20, 2023
From: XEROX CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 065628/0019 →
SECURITY INTEREST Recorded Jun 22, 2023
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 064760/0389 →
RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 062740/0214 Recorded May 18, 2023
From: CITIBANK, N.A., AS AGENT
To: XEROX CORPORATION
Reel/Frame 063694/0122 →
SECURITY INTEREST Recorded Nov 10, 2022
From: XEROX CORPORATION
To: CITIBANK, N.A., AS AGENT
Reel/Frame 062740/0214 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2011
From: CAMPANELLI, MICHAEL ROBERT; HANDLEY, JOHN C.; VENABLE, DENNIS L.
To: XEROX CORPORATION
Reel/Frame 025698/0098 →
Continuity (1)
Related Publication 20120188612A1 · Jul 26, 2012