EP1431908A2

Non-iterative method of calculating image skew

Abstract

A parallel, non-iterative, memory efficient method of determining image skew. A document skew angle is determined from a fast scan second order moment data set and a slow scan second order moment data set. A slow scan second order moment data set can be generated by receiving a current scanline of image data, updating columns sums for a set of rotation angles using scanlines within a buffer comprising a band having a predetermined number B of scanlines, and updating the buffer with the current scanline. A fast scan second order moment data set is generated by projecting a plurality of pixels within each scanline of image data received to a first rotation angle wherein the plurality pixels project onto M rows; updating M memory locations, wherein each one of the M memory locations corresponds to one of the M rows and wherein each memory location is updated using pixels projecting onto the corresponding row whereby one of the M memory locations contains a completed row; and adding the square of the completed row sum to a moment accumulator.

EP1431908A2, drawing sheet 1
Sheet 1 of 15

Term

Term ended

Projected expiry passed 16 December 2023, 2.8 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

10 claims: 3 independent, 7 dependent

  1. 1
    A method of processing scanned image data comprising:receiving image data, the image data comprising a plurality of scanlines with each scanline comprising a plurality of pixels;generating a fast scan second order moment data set;generating a slow scan second order moment data set;anddetermining a document skew angle from the fast scan and slow scan second order moment data sets;wherein the step of generating the slow scan second order moment data set includes receiving a current scanline of image data,updating columns sums for a set of rotation angles using scanlines within a buffer comprising a band of scanlines, the band having a predetermined number B of scanlines, andupdating the buffer with the current scanline.
  2. 8
    A method of processing image data comprising:scanning a document to produce scanned image data comprising a plurality of scanlines, each scanline having a plurality of pixels;generating a first set of second order moments, the first set of second order moments being based on row sums;generating a second set of second order moments, the second set of second order moments being based on column sums ;anddetermining a document skew angle from the first and second sets of second order moments;wherein the step of generating the first set of second order moments includes receiving a first scanline, projecting a plurality of pixels within the first scanline to at least a first rotation angle,adding a first subset of the plurality of projected pixels to a first memory location,adding a second subset of the plurality of projected pixels to a second memory location,adding a third subset of the plurality of projected pixels to a third memory location, andadding the square of the pixel sum in the first memory location to a moment accumulator.
  3. 9
    A memory efficient method of processing image data to determine image skew, comprising:receiving scanned image data, the scanned image data comprising a plurality of scanlines with each scanline comprising a plurality of pixels;generating a fast scan second order moment data set;generating a slow scan second order moment data set;anddetermining a document skew angle from the fast scan and slow scan second order moment data sets;wherein the step of generating the fast scan second order moment data set includes projecting a plurality of pixels within a scanline to at least a first rotation angle wherein the plurality pixels project onto M rows;updating M memory locations, wherein each one of the M memory locations corresponds to one of the M rows and wherein each memory location is updated using pixels projecting onto the corresponding row whereby one of the memory locations contains a completed row sum and M-1 of the memory locations contain partial row sums;adding the square of the completed row sum to a moment accumulator;andrepeating the projecting, updating and adding steps for each scanline within a plurality of scanlines whereby a memory location having a completed row sum is reused to accumulate subsequent row sum so that only M memory locations are required to accumulate row sums.