# Patent

## Title
Method for removing streaks from a scanned image

## Abstract

A method for removing streaks from a scanned image includes performing a scanner light source OFF scan to generate a dark image having M rows of pixels and N+W columns of pixels; generating a line noise profile for the N columns of pixels of the dark image; performing a scanner light source ON scan to generate a regular image having M rows of pixels and N+W columns of pixels; processing the W columns of pixels of the regular image to detect a magnitude of the streak in the regular image; use the magnitude of the streak and the line noise profile to predict an amount of dark noise removal for each of the N columns of pixels of the regular image at the location of the streak; and subtracting the predicted amount of dark noise removal for each of the N columns of pixels from the respective N columns of pixels of the regular image.

## Background
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a scanner, and, more particularly, to a method for removing streaks from a scanned image.
2. Description of the Related Art
Streaks are often present in many scanned images. Such streaks may appear in the form of periodic horizontal lines in a scanned image. The visibility of the streaks varies with scanners and the content of the scanned image. For many low cost scanners, for example, the streaks can appear to be very objectionable in the scanned image, particularly in constant mid-tone regions of the image.
SUMMARY OF THE INVENTION
The present invention provides an effective method to remove streaks from a scanned image. As used herein, the term “remove streaks” means a reduction of the visual impact of streaks from the scanned image, and may result in the total elimination of the streaks.
The invention, in one exemplary embodiment, is directed to a method for use in a scanner with a scan bar having a sensor defining N+W pixels in a row, wherein the N pixels are content pixels that are exposed to a scanner light source and the W pixels are non-content pixels that are not exposed to the scanner light source, each pixel being represented by data. The method provides for removing streaks from a scanned image. The method includes performing a scanner light source OFF scan to generate a dark image having M rows of pixels and N+W columns of pixels; generating a line noise profile for the N columns of pixels of the dark image; performing a scanner light source ON scan to generate a regular image having M rows of pixels and N+W columns of pixels; determining a location of a streak in the regular image; processing the W columns of pixels of the regular image to detect a magnitude of the streak in the regular image; use the magnitude of the streak and the line noise profile to predict an amount of dark noise removal for each of the N columns of pixels of the regular image at the location of the streak; and subtracting the predicted amount of dark noise removal for each of the N columns of pixels from the respective N columns of pixels of the regular image to remove the streak.
The invention, in another exemplary embodiment, is directed to an imaging apparatus. The imaging apparatus includes a scanner and a controller. The scanner has a scan bar having a scanner light source and a sensor defining N+W pixels in a row, wherein the N pixels are content pixels that are exposed to the scanner light source and the W pixels are non-content pixels that are not exposed to the scanner light source. Each pixel is represented by data. The controller is coupled to the scanner. The controller executes program instructions to perform a method for removing streaks from a scanned image, including performing a scanner light source OFF scan to generate a dark image having M rows of pixels and N+W columns of pixels; generating a line noise profile for the N columns of pixels of the dark image; performing a scanner light source ON scan to generate a regular image having M rows of pixels and N+W columns of pixels; determining a location of a streak in the regular image; processing the W columns of pixels of the regular image to detect a magnitude of the streak in the regular image; use the magnitude of the streak and the line noise profile to predict an amount of dark noise removal for each of the N columns of pixels of the regular image at the location of the streak; and subtracting the predicted amount of dark noise removal for each of the N columns of pixels from the respective N columns of pixels of the regular image to remove the streak.



BRIEF DESCRIPTION OF THE DRAWINGS
The above-mentioned and other features and advantages of this invention, and the manner of attaining them, will become more apparent and the invention will be better understood by reference to the following description of embodiments of the invention taken in conjunction with the accompanying drawings, wherein:
FIG. 1 is a diagrammatic depiction of an imaging system that employs an imaging apparatus in accordance with the present invention.
FIG. 2 is a diagrammatic representation of an embodiment of the scanner used in the imaging system of FIG. 1.
FIG. 3 is a diagrammatic representation of a scanning area, including a plurality of columns of content pixels and a plurality of columns of dark pixels, associated with the sensor of the scanner of FIG. 2
FIG. 4 is a diagrammatic depiction of an embodiment of the present invention having a streaks detection device and a streaks removal device provided upstream of a color converter.
FIG. 5 is a flowchart of a method according to an embodiment of the present invention.
FIG. 6A illustrates an image formed by a plurality of color patches having objectionable streaks in the form of horizontal lines prior to streak removal.
FIG. 6B illustrates the image of FIG. 6A having the objectionable streaks removed in accordance with an embodiment of the present invention.



Corresponding reference characters indicate corresponding parts throughout the several views. The exemplifications set out herein illustrate embodiments of the invention, and such exemplifications are not to be construed as limiting the scope of the invention in any manner.
DETAILED DESCRIPTION OF THE INVENTION
Referring now to the drawings, and particularly to FIG. 1, there is shown a diagrammatic depiction of an imaging system 10 embodying the present invention. Imaging system 10 includes an imaging apparatus 12 and a host 14. Imaging apparatus 12 communicates with host 14 via a communications link 16.
As used herein, the term “communications link” generally refers to structure that facilitates electronic communication between two components, and may operate using wired or wireless technology. Accordingly, communications link 16 may be, for example, a direct electrical wired connection, a direct wireless connection (e.g., infrared or radio frequency (r.f.)), or a network connection (wired or wireless), such as for example, an Ethernet local area network (LAN) or a wireless networking standard, such as IEEE 802.11.
Imaging apparatus 12 may be, for example, a standalone scanner; an ink jet printer and/or copier, or an electrophotographic printer and/or copier that is used in conjunction with a scanner; or an all-in-one (AIO) unit that includes a printer, a scanner, and possibly a fax unit. In the present embodiment, imaging apparatus 12 is an AIO unit, and includes a controller 18, a print engine 20, a printing cartridge 22, a scanner 24, and a user interface 26.
Controller 18 includes a processor unit and associated memory 28, and may be formed as one or more Application Specific Integrated Circuits (ASIC). Controller 18 may be a printer controller, a scanner controller, or may be a combined printer and scanner controller. Although controller 18 is depicted in imaging apparatus 12, alternatively, it is contemplated that all or a portion of controller 18 may reside in host 14. Controller 18 is communicatively coupled to print engine 20 via a communications link 30, to scanner 24 via a communications link 32, and to user interface 26 via a communications link 34. Controller 18 serves to process print data and to operate print engine 20 during printing, and in accordance with an embodiment of the present invention, serves to operate scanner 24 and process raw scanner data to perform streaks detection and streaks removal on the raw scanner data.
In the context of the examples for imaging apparatus 12 given above, print engine 20 may be, for example, an ink jet print engine or a color electrophotographic print engine. Print engine 20 is configured to mount printing cartridge 22 and to print on a substrate 36 using printing cartridge 22. Substrate 36 is a print medium, and may be one of many types of print media, such as a sheet of plain paper, fabric, photo paper, coated ink jet paper, greeting card stock, transparency stock for use with overhead projectors, iron-on transfer material for use in transferring an image to an article of clothing, and back-lit film for use in creating advertisement displays and the like. As an ink jet print engine, print engine 20 operates printing cartridge 22 to eject ink droplets onto substrate 36 in order to reproduce text or images, etc. As an electrophotographic print engine, print engine 20 causes printing cartridge 22 to deposit toner onto substrate 36, which is then fused to substrate 36 by a fuser (not shown).
Host 14 may be, for example, a personal computer, including memory 38, an input device 40, such as a keyboard, and a display monitor 42. Host 14 further includes a processor, input/output (I/O) interfaces, memory, such as RAM, ROM, NVRAM, and at least one mass data storage device, such as a hard drive, a CD-ROM and/or a DVD unit.
During operation, host 14 includes in its memory a software program including program instructions that function as an imaging driver 44, e.g., printer/scanner driver software, for imaging apparatus 12. Imaging driver 44 is in communication with controller 18 of imaging apparatus 12 via communications link 16. Imaging driver 44 facilitates communication between imaging apparatus 12 and host 14, and may provide formatted print data to imaging apparatus 12, and more particularly, to print engine 20. Although imaging driver 44 is disclosed as residing in memory 38 of host 14, it is contemplated that, alternatively, all or a portion of imaging driver 44 may be located in controller 18 of imaging apparatus 12.
Referring to FIG. 2, scanner 24 may be, for example, in the form of a flat bed scanner. Those skilled in the art will recognize, however, that other types of scanners may be used in accordance with the present invention. Scanner 24, as a flat bed scanner, includes a scan bar 50, a document glass 52 and a lid 54. FIG. 2 shows scanner 24 with lid 54 in an open position. Lid 54 includes a surface that forms a background 56 for a document 58 being scanned. During operation, lid 54 is lifted, document 58 to be scanned is placed on document glass 52, and then lid 54 is closed. Scan bar 50, including a scanner light source 50-1, having one or more illuminants, e.g., lamps, LED arrays, etc., and including a sensor 50-2, having one or more sensor arrays, then is scanned over the stationary document 58 to collect raw scanner image data. In an alternative embodiment, for example, scan bar 50 may be held stationary and the document moved in relation to the scan bar.
As illustrated in FIG. 3, sensor 50-2 of scan bar 50 of scanner 24 defines N+W columns of pixels along each row of a plurality of rows M in a scanning area 60. In this example, the N columns of pixels are content pixels associated with sensor 50-2 that are exposed to scanner light source 50-1 and the W columns of pixels are non-content pixels associated with sensor 50-1 that are not exposed to scanner light source 50-2. Each pixel, i.e., either the N pixels or the W pixels, is represented by data obtained as an output from sensor 50-2.
FIG. 4 is a diagrammatic depiction of a scanner data processing apparatus 62 configured in accordance with an embodiment of the present invention, which may be implemented, for example, in imaging driver 44. However, it is contemplated that all or a portion of scanner data processing apparatus 62 may be implemented as software, firmware, or hardware, in one or more of imaging driver 44, controller 18 or host 14. Scanner data processing apparatus 62 includes a streaks detection device 64, a streaks removal device 66, a color converter 68 and a color conversion lookup table 70.
In the embodiment shown in FIG. 4, scanner 24 provides raw RGB (red, green, blue) scanner data as input to streaks detection device 64. Once streaks are detected by streaks detection device 64, the raw RGB scanner data is processed by streaks removal device 66. In one implementation of an embodiment of the present invention, for example, streaks detection device 64 and streaks removal device 66 may be incorporated into imaging driver 44. Accordingly, streaks detection device 64 and streaks removal device 66 processes the raw RGB scanner data received from scanner 24, and converts the raw RGB scanner data into modified, i.e., streak reduced, RGB data in a data format compatible with color converter 68.
Color converter 68 converts color signals from a first color space to a second color space. For example, the first color space may be RGB color space providing RGB data and the second color space may be CMYK (cyan, magenta, yellow, and black) color space that outputs CMYK output data for print engine 20. The second color space may also be an RGB color space, for example, if the desired output of imaging apparatus 12 is a scan-to-file replication of an image that might be displayed on display monitor 42. Those skilled in the art will recognize that color converter 68 may be in the form of firmware, hardware or software, and may reside in either imaging driver 44 or controller 18. Alternatively, some portions of color converter 68 may reside in imaging driver 44, while other portions reside in controller 18.
Color converter 68 is coupled to a color conversion lookup table 70. Color converter 68 uses color conversion lookup table 70 in converting color signals from the first color space, e.g., RGB data, to output color data in the second color space. Color conversion lookup table 70 may be a multidimensional lookup table having at least three dimensions, and may include RGB input values and CMYK or RGB output values, wherein each CMYK or RGB output value corresponds to an RGB input value. Color conversion lookup table 70 may also be in the form of groups of polynomial functions capable of providing the same multidimensional output as if in the form of a lookup table.
FIG. 5 is a flowchart of a method for removing streaks from a scanned image according to an embodiment of the present invention. FIG. 6A illustrates an image formed by a plurality of color patches having objectionable streaks in the form of horizontal lines prior to streak removal. The method may be implemented, for example, by program instructions executed by the processor of controller 18 of imaging apparatus 12 and/or the processor of host 14, and may be, for example, included in whole or in part in imaging driver 44.
The location of a horizontal streak in an image corresponds to the row of pixels where sensor 50-2 of scan bar 50 slows down or stops temporarily. If the present invention is implemented in the scanner as a hardware solution, it is straightforward to determine the locations of the streaks because the positions where the sensor 50-2 of scan bar 50 slows down or stop are readily available. Where a software and/or firmware solution is needed, the present invention provides a streak detection algorithm that utilizes dark pixel information. In the method steps of the example that follows, it is assumed that a software and/or firmware solution is needed.
In this example, it is assumed that there are M×(N+W) pixels in the raw scanner data, i.e., the image data, wherein M is the number of rows of pixels and (N+W) is the number of columns of pixels, and wherein W represents the image “dark pixels” which are not exposed to scanner light.
At step S100, a light source OFF scan is performed to generate a dark image having M rows of pixels and N+W columns of pixels.
At step S101, the location of a streak in the dark image using the M rows of the W columns of pixels.
A pattern map can be extracted by finding the projection of the M×W dark image averaged over all the Red (R), Green (G) and Blue (B) channels along the horizontal direction:




  
    
      
        
          
            proj
            ⁡
            
              (
              i
              )
            
          
          =
          
            
              1
              3
            
            ·
            
              
                ∑
                
                  j
                  =
                  
                    N
                    +
                    1
                  
                
                
                  N
                  +
                  W
                
              
              ⁢
              
                (
                
                  
                    
                      p
                      R
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        j
                      
                      )
                    
                  
                  +
                  
                    
                      p
                      G
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        j
                      
                      )
                    
                  
                  +
                  
                    
                      p
                      B
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        j
                      
                      )
                    
                  
                
                )
              
            
          
        
        ,
        
          ∀
          
            i
            ∈
            
              {
              
                
                  
                    
                      1
                      ,
                    
                  
                  
                    Λ
                  
                  
                    M
                  
                
              
              }
            
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          1
        
        )
      
    
  




where pC(i, j) denotes the value of channel C of pixel p at spatial location (i, j) and C∈{R, G, B}

The local average of the pattern map can be calculated as:




  
    
      
        
          
            
              proj
              avg
            
            ⁡
            
              (
              i
              )
            
          
          =
          
            
              1
              
                
                  l
                  ⁢
                  
                    
                  
                  ⁢
                  1
                
                +
                
                  l
                  ⁢
                  
                    
                  
                  ⁢
                  2
                
              
            
            ⁢
            
              
                ∑
                
                  k
                  =
                  
                    
                      -
                      l
                    
                    ⁢
                    
                      
                    
                    ⁢
                    1
                  
                
                
                  l
                  ⁢
                  
                    
                  
                  ⁢
                  2
                
              
              ⁢
              
                proj
                ⁡
                
                  (
                  
                    i
                    +
                    k
                  
                  )
                
              
            
          
        
        ,
        
          ∀
          
            i
            ∈
            
              {
              
                
                  
                    
                      1
                      ,
                    
                  
                  
                    Λ
                  
                  
                    M
                  
                
              
              }
            
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          2
        
        )
      
    
  




where l1<M and l2<M.

An appropriate boundary condition can be applied to Equation 2 to get a representative average for each of the two end intervals. For example,
Let I denote the set of i's with proj(i)>projavg(i). The average of proj for all i∈I can be calculated as:




  
    
      
        
          mean
          I
        
        =
        
          
            ∑
            
              i
              ∈
              I
            
          
          ⁢
          
            proj
            ⁡
            
              (
              i
              )
            
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          3
        
        )
      
    
  




The position of each streak is given by:

ī={ī: proj(ī)>γ·meanI and ī∈I}  (Equation 4)

where γ is a parameter that can be varied as desired or determined experimentally.

At step S102, a line noise profile for the N columns of pixels of the dark image imgdark is generated. The average line noise profile LineNP across sensor 50-2 of scan bar 50 for each or the R, G and B channels can be estimated as:




  
    
      
        
          
            
              LineNP
              R
            
            ⁡
            
              (
              j
              )
            
          
          =
          
            
              1
              H
            
            ·
            
              
                ∑
                
                  
                    
                      
                        i
                        ∈
                        
                          {
                          
                            
                              
                                
                                  1
                                  ,
                                
                              
                              
                                Λ
                              
                              
                                M
                              
                            
                          
                          }
                        
                      
                    
                  
                  
                    
                      
                        i
                        ∉
                        
                          
                            I
                            _
                          
                          dark
                        
                      
                    
                  
                
              
              ⁢
              
                
                  p
                  R
                  dark
                
                ⁡
                
                  (
                  
                    i
                    ,
                    j
                  
                  )
                
              
            
          
        
        ⁢
        
          

        
        ⁢
        
          
            
              LineNP
              G
            
            ⁡
            
              (
              j
              )
            
          
          =
          
            
              1
              H
            
            ·
            
              
                ∑
                
                  
                    
                      
                        i
                        ∈
                        
                          {
                          
                            
                              
                                
                                  1
                                  ,
                                
                              
                              
                                Λ
                              
                              
                                M
                              
                            
                          
                          }
                        
                      
                    
                  
                  
                    
                      
                        i
                        ⁢
                        
                          
                        
                        ∉
                        
                          
                        
                        ⁢
                        
                          
                            I
                            _
                          
                          dark
                        
                      
                    
                  
                
              
              ⁢
              
                
                  p
                  G
                  dark
                
                ⁡
                
                  (
                  
                    i
                    ,
                    
                      
                    
                    ⁢
                    j
                  
                  )
                
              
            
          
        
        ⁢
        
          

        
        ⁢
        
          
            
              LineNP
              B
            
            ⁡
            
              (
              j
              )
            
          
          =
          
            
              1
              H
            
            ·
            
              
                ∑
                
                  
                    
                      
                        i
                        ∈
                        
                          {
                          
                            
                              
                                
                                  1
                                  ,
                                
                              
                              
                                Λ
                              
                              
                                M
                              
                            
                          
                          }
                        
                      
                    
                  
                  
                    
                      
                        i
                        ⁢
                        
                          
                        
                        ∉
                        
                          
                        
                        ⁢
                        
                          
                            I
                            _
                          
                          dark
                        
                      
                    
                  
                
              
              ⁢
              
                
                  p
                  B
                  dark
                
                ⁡
                
                  (
                  
                    i
                    ,
                    
                      
                    
                    ⁢
                    j
                  
                  )
                
              
            
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          5
        
        )
      
    
  




where pdark is a pixel of imgdark, j∈{1, Λ N} and H is the total number of rows that do not contain streaks.

At step S103, a noise profile parameter αCopt is determined.
The sensitivity of the sensor pixels of sensor 50-2 may vary quite significantly from pixel to pixel. As a result, the amount of dark noise accumulated in each sensor pixel may also vary significantly given the same amount of exposure time. To remove the streaks, not only the location of the streak is needed but also how much of the dark noise needs to be subtracted from the affected pixels. Since the dark sensor pixels W are exposed as long as the content sensor pixels N, the noise level of the dark sensor pixels W may be used to predict the dark noise accumulated in the content sensor pixels N using the noise profile parameter αCopt which is computed by taking the following steps.

    
    
        i) Noise profile parameter estimation (perform this step offline and only once for the scanner using a dark image)
        
            a) Perform a scan with the scanner light OFF to obtain an M×(N+W) dark image imgdark.
            b) Locate the position of the streaks as described above.
            c) Let projdark, projavgdark and meanĪdark denote the parameters for the imgdark computed using Equations 1, 2 and 3 respectively. Here, Īdark is the set of īdark's found for imgdark using Equation 4.
            d) Find the projection of the dark pixels along the horizontal direction for each channel
        
        
    
    






  
    
      
        
          
            
              proj
              C
              dark
            
            ⁡
            
              (
              i
              )
            
          
          =
          
            
              ∑
              
                j
                =
                
                  N
                  +
                  1
                
              
              
                N
                +
                W
              
            
            ⁢
            
              
                p
                C
                dark
              
              ⁡
              
                (
                
                  i
                  ,
                  j
                
                )
              
            
          
        
        ,
        
          ∀
          
            i
            ∈
            
              {
              
                
                  
                    
                      1
                      ,
                    
                  
                  
                    Λ
                  
                  
                    M
                  
                
              
              }
            
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          6
        
        )
      
    
  




    
    
        
        
            
            
                where pCdark(i, j) denotes the value of channel C of pixel pdark at spatial location (i, j) and C∈{R, G, B}
            
            
            e) Calculate projCdarkavg using projCdark and Equation 2.
            f) Compute the amplitude of projCdark(īdark) at rows that contain streaks for each channel:
        
        
    
    






  
    
      
        
          
            s
            C
            dark
          
          ⁡
          
            (
            
              
                i
                _
              
              dark
            
            )
          
        
        =
        
          

        
        ⁢
        
          {
          
            
              
                
                  
                    
                      proj
                      C
                      dark
                    
                    ⁡
                    
                      (
                      
                        
                          i
                          _
                        
                        dark
                      
                      )
                    
                  
                  -
                
              
              
                
                  
                    if
                    ⁢
                    
                      
                    
                    ⁢
                    
                      
                        proj
                        C
                        dark
                      
                      ⁡
                      
                        (
                        
                          
                            i
                            _
                          
                          dark
                        
                        )
                      
                    
                  
                  >
                
              
            
            
              
                
                  
                    
                      proj
                      
                        
                          
                        
                        ⁢
                        avg
                      
                      
                        
                          
                        
                        ⁢
                        dark
                      
                    
                    ⁡
                    
                      (
                      
                        
                          
                            
                          
                          ⁢
                          
                            i
                            
                              
                                
                              
                              ⁢
                              _
                            
                          
                        
                        
                          
                            
                          
                          ⁢
                          dark
                        
                      
                      )
                    
                  
                  ,
                
              
              
                
                  
                    proj
                    avg
                    dark
                  
                  ⁡
                  
                    (
                    
                      
                        i
                        _
                      
                      dark
                    
                    )
                  
                
              
            
            
              
                0
              
              
                otherwise
              
            
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          7
        
        )
      
    
  




    
    
        
        
            
            
                for all īdark∈Īdark
            
            
            g) Estimate the noise profile parameter αCopt for each channel by solving the following optimization equation:
        
        
    
    






  
    
      
        
          α
          C
          opt
        
        =
        
          
            
              arg
              ⁢
              
                
              
              ⁢
              min
            
            
              α
              ∈
              R
            
          
          ⁢
          
            {
            
              
                ∑
                
                  
                    
                      
                        
                          
                            i
                            _
                          
                          dark
                        
                        ∈
                        
                          
                            I
                            _
                          
                          dark
                        
                      
                    
                  
                  
                    
                      
                        
                          
                            s
                            C
                            dark
                          
                          ⁡
                          
                            (
                            
                              
                                i
                                _
                              
                              dark
                            
                            )
                          
                        
                        ≠
                        0
                      
                    
                  
                
              
              ⁢
              
                
                  ∑
                  
                    j
                    =
                    1
                  
                  N
                
                ⁢
                
                  
                  
                    
                      
                        
                          
                            
                              p
                              dark
                            
                            ⁡
                            
                              (
                              
                                
                                  
                                    i
                                    _
                                  
                                  dark
                                
                                ,
                                j
                              
                              )
                            
                          
                          -
                          
                            α
                            ·
                          
                        
                      
                    
                    
                      
                        
                          
                            
                              s
                              
                                
                                  
                                
                                ⁢
                                C
                              
                              
                                
                                  
                                
                                ⁢
                                dark
                              
                            
                            ⁡
                            
                              (
                              
                                
                                  
                                    
                                  
                                  ⁢
                                  
                                    i
                                    
                                      
                                        
                                      
                                      ⁢
                                      _
                                    
                                  
                                
                                
                                  
                                    
                                  
                                  ⁢
                                  dark
                                
                              
                              )
                            
                          
                          ·
                          
                            
                              LineNP
                              
                                
                                  
                                
                                ⁢
                                C
                              
                            
                            ⁡
                            
                              (
                              j
                              )
                            
                          
                        
                      
                    
                  
                  
                
              
            
            }
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          8
        
        )
      
    
  




    
    
        
        
            
            
                where C∈{R, G, B}
            
            
        
        
    
    


Steps S100-S103 are performed only once, offline.
At step S104, a light source ON scan to generate a regular image having M rows of pixels and N+W columns of pixels is performed. This is illustrated, for example, in FIG. 3.
At step S105, the W columns of pixels of the regular image are processed to detect a location of a streak and a magnitude of the streak in the regular image.
A pattern map can be extracted by finding the projection of the M×W dark image averaged over all the Red (R), Green (G) and Blue (B) channels along the horizontal direction:




  
    
      
        
          
            proj
            ⁡
            
              (
              i
              )
            
          
          =
          
            
              1
              3
            
            ·
            
              
                ∑
                
                  j
                  =
                  
                    N
                    +
                    1
                  
                
                
                  N
                  +
                  W
                
              
              ⁢
              
                (
                
                  
                    
                      p
                      R
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        j
                      
                      )
                    
                  
                  +
                  
                    
                      p
                      G
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        j
                      
                      )
                    
                  
                  +
                  
                    
                      p
                      B
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        j
                      
                      )
                    
                  
                
                )
              
            
          
        
        ,
        
          ∀
          
            i
            ∈
            
              {
              
                
                  
                    
                      1
                      ,
                    
                  
                  
                    Λ
                  
                  
                    M
                  
                
              
              }
            
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          1
        
        )
      
    
  




where pC(i,j) denotes the value of channel C of pixel p at spatial location (i,j) and C∈{R, G, B}

The local average of the pattern map can be calculated as:




  
    
      
        
          
            
              proj
              avg
            
            ⁡
            
              (
              i
              )
            
          
          =
          
            
              1
              
                
                  l
                  ⁢
                  
                    
                  
                  ⁢
                  1
                
                +
                
                  l
                  ⁢
                  
                    
                  
                  ⁢
                  2
                
              
            
            ⁢
            
              
                ∑
                
                  k
                  =
                  
                    
                      -
                      l
                    
                    ⁢
                    
                      
                    
                    ⁢
                    1
                  
                
                
                  l
                  ⁢
                  
                    
                  
                  ⁢
                  2
                
              
              ⁢
              
                proj
                ⁡
                
                  (
                  
                    i
                    +
                    k
                  
                  )
                
              
            
          
        
        ,
        
          ∀
          
            i
            ∈
            
              {
              
                
                  
                    
                      1
                      ,
                    
                  
                  
                    Λ
                  
                  
                    M
                  
                
              
              }
            
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          2
        
        )
      
    
  




where l1<M and l2<M.

An appropriate boundary condition can be applied to Equation 2 to get a representative average for each of the two end intervals. For example,
Let I denote the set of i's with proj(i)>projavg(i). The average of proj for all i∈I can be calculated as:




  
    
      
        
          mean
          I
        
        =
        
          
            ∑
            
              i
              ∈
              I
            
          
          ⁢
          
            proj
            ⁡
            
              (
              i
              )
            
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          3
        
        )
      
    
  




The position of each streak is given by:

ī={ī: proj(ī)>γ·meanI and ī∈I}(Equation 4)

where γ is a parameter that can be varied as desired or determined experimentally.

At step S106, the magnitude of the streak and the line noise profile are used to predict an amount of dark noise removal for each of the N columns of pixels of the regular image at the location of the streak. This step is performed for every scanned image to remove the streaks.
The amount of dark noise to be subtracted from the content pixel portion of the image to remove the streaks is the amount required to suppress the contrast in the corresponding dark pixel portion of the image, which is

nC(ī, j)=αCopt·sC(ī)·LineNPC(j)  (Equation 9)

At step S107, the predicted amount of dark noise removal for each of the N columns of pixels is subtracted from the respective N columns of pixels of the regular image. The pixel of the final image with streaks removed at spatial location (i, j) is given by:




  
    
      
        
          
            p
            C
          
          ⁡
          
            (
            
              i
              ,
              j
            
            )
          
        
        =
        
          {
          
            
              
                
                  
                    
                      
                        
                          
                            
                              p
                              C
                            
                            ⁡
                            
                              (
                              
                                i
                                ,
                                j
                              
                              )
                            
                          
                          -
                          
                            
                              n
                              C
                            
                            ⁡
                            
                              (
                              
                                i
                                ,
                                j
                              
                              )
                            
                          
                        
                        ,
                      
                    
                    
                      
                        
                          if
                          ⁢
                          
                            
                          
                          ⁢
                          i
                        
                        ∈
                        
                          I
                          _
                        
                      
                    
                  
                  
                    
                      
                        
                          
                            p
                            C
                          
                          ⁡
                          
                            (
                            
                              i
                              ,
                              j
                            
                            )
                          
                        
                        ,
                      
                    
                    
                      otherwise
                    
                  
                
                ⁢
                
                  

                
                ⁢
                for
                ⁢
                
                  
                
                ⁢
                j
              
              =
              1
            
            ,
            Λ
            ,
            N
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          10
        
        )
      
    
  




If the dark noise characteristic of the dark pixels is not closely representative of that of the content pixels, sC(ī) can be tuned to produce more conservative results as follows:





  
    
      
        
          
            s
            C
          
          ⁡
          
            (
            
              i
              _
            
            )
          
        
        =
        
          {
          
            
              
                
                  
                    
                      s
                      C
                    
                    ⁡
                    
                      (
                      
                        i
                        _
                      
                      )
                    
                  
                  ,
                
              
              
                
                  
                    if
                    ⁢
                    
                      
                    
                    ⁢
                    
                      
                        s
                        C
                      
                      ⁡
                      
                        (
                        
                          i
                          _
                        
                        )
                      
                    
                  
                  ≤
                  
                    
                      T
                      C
                    
                    +
                    
                      β
                      ·
                      
                        
                          D
                          C
                        
                        ⁡
                        
                          (
                          
                            i
                            _
                          
                          )
                        
                      
                    
                  
                
              
            
            
              
                
                  
                    
                      T
                      C
                    
                    +
                    
                      β
                      ·
                      
                        
                          D
                          C
                        
                        ⁡
                        
                          (
                          
                            i
                            _
                          
                          )
                        
                      
                    
                  
                  ,
                
              
              
                otherwise
              
            
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          11
        
        )
      
    
  




where TC=mean({sC(ī):ī∈Ī}), DC=sC(ī)−TC and 0≦β≦1
The parameter β can be tuned to reduce the amount of dark noise to be subtracted from the content pixels. This will prevent excessive dark noise subtraction from the content pixels that may introduce undesirable artifacts. Steps S104-S107 are performed for every scanned image.
FIG. 6B illustrates the image of FIG. 6A having the objectionable streaks removed in accordance with the embodiment of the present invention described above.
While this invention has been described with respect to embodiments of the invention, the present invention may be further modified within the spirit and scope of this disclosure. This application is therefore intended to cover any variations, uses, or adaptations of the invention using its general principles. Further, this application is intended to cover such departures from the present disclosure as come within known or customary practice in the art to which this invention pertains and which fall within the limits of the appended claims.

## Claims

1. In a scanner with a scan bar having a sensor defining N+W pixels in a row, wherein the N pixels are content pixels that are exposed to a scanner light source and the W pixels are non-content pixels that are not exposed to said scanner light source, each pixel being represented by data, a method for removing streaks from a scanned image, comprising:
performing a scanner light source OFF scan to generate a dark image having M rows of pixels and N+W columns of pixels;
generating a line noise profile for said N columns of pixels of said dark image;
performing a scanner light source ON scan to generate a regular image having M rows of pixels and N+W columns of pixels;
determining a location of a streak in said regular image;
processing said W columns of pixels of said regular image to detect a magnitude of said streak in said regular image;
using said magnitude of said streak and said line noise profile to predict an amount of dark noise removal for each of said N columns of pixels of said regular image at said location of said streak; and
subtracting the predicted amount of dark noise removal for each of said N columns of pixels from the respective N columns of pixels of said regular image to remove said streak.

2. The method of claim 1, further comprising determining a location of a streak in said dark image using said M rows of W columns of pixels prior to said generating said line noise profile.

3. The method of claim 1, further comprising determining a noise profile parameter used to predict said amount of dark noise removal for each of said N columns of pixels of said regular image at said location of said streak.

4. The method of claim 1, wherein said location of said streak in said regular image is determined by processing said W columns of pixels of said regular image.

5. The method of claim 1, further comprising adjusting said amount of dark noise to be subtracted from said respective N columns of pixels of said regular image.

6. The method of claim 1, wherein said data is RGB color data.

7. The method of claim 1, wherein said streak comprises a plurality of horizontal streaks.

8. An imaging apparatus, comprising:
a scanner with a scan bar having a scanner light source and a sensor defining N+W pixels in a row, wherein the N pixels are content pixels that are exposed to said scanner light source and the W pixels are non-content pixels that are not exposed to said scanner light source, each pixel being represented by data; and
a controller coupled to said scanner, said controller executing program instructions to perform a method for removing streaks from a scanned image, comprising:
performing a scanner light source OFF scan to generate a dark image having M rows of pixels and N+W columns of pixels;
generating a line noise profile for said N columns of pixels of said dark image;
performing a scanner light source ON scan to generate a regular image having M rows of pixels and N+W columns of pixels;
determining a location of a streak in said regular image;
processing said W columns of pixels of said regular image to detect a magnitude of said streak in said regular image;
using said magnitude of said streak and said line noise profile to predict an amount of dark noise removal for each of said N columns of pixels of said regular image at said location of said streak; and
subtracting the predicted amount of dark noise removal for each of said N columns of pixels from the respective N columns of pixels of said regular image to remove said streak.

9. The imaging apparatus of claim 8, further comprising determining a location of a streak in said dark image using said M rows of W columns of pixels prior to said generating said line noise profile.

10. The imaging apparatus of claim 8, further comprising determining a noise profile parameter used to predict said amount of dark noise removal for each of said N columns of pixels of said regular image at said location of said streak.

11. The imaging apparatus of claim 8, wherein said location of said streak in said regular image is determined by processing said W columns of pixels of said regular image.

12. The imaging apparatus of claim 8, further comprising adjusting said amount of dark noise to be subtracted from said respective N columns of pixels of said regular image.

13. The imaging apparatus of claim 8, wherein said data is RGB color data.

14. The imaging apparatus of claim 8, wherein said streak comprises a plurality of horizontal streaks.