[Printers] Quick detection and measurement of dot patterns using FFT

Ralf Muschall ralf at lipsia.de
Mon Oct 24 12:40:41 PDT 2005


Ralf Muschall <ralf at lipsia.de> writes:

> The lines autocorr[:,0]=0, autocorr[0,:]=0 and the 16th root serve to

These tricks become unnecessary once the bug is fixed.

The line:

>     autocorr=numarray.abs(numarray.fft.fft(gm_pwr))

is to be corrected into:

      autocorr=numarray.abs(numarray.fft.fft(numarray.fft.fft(gm_pwr,axis=0),axis=1))

Fresh results:

1. Scanning and processing an empty page with only the dots and
   nothing else gives a nice pattern of small circular dots in the
   autocorrelation.  The dots whose column number is divisible by 18
   *and* (not or) the row number is divisible by 23 particularly
   bright.  I hope to become able to on automatically detect both the
   raster step and the pattern size (the former is about 0.8 mm) -
   this will need to be done once for each printer type (and requires
   wasting an almost empty sheet of paper).

2. Nothing at all remains of the pattern if the picture was not empty
   - even a few lines of text completely destroy the result (probably
   by making the difference of maximal and minimal value in the
   autocorrelation so big that the effect of the dots is below 1/256
   of that and therefore rounded away during value discretization).
   IOW, the wanted ability to automatically detect the pattern even on
   a picture seems to be impossible.


Other results:

I was unable to detect a yellow pattern (both visually, using CMYK as
well as autocorrelation) on a print from OKI's C5540MFP.  They might
have decided to omit the "feature" due to the fact that the toner is
highly glossy, making faking banknotes hard (and probably yellow dots
too visible if the happen to be in empty places).

Ralf
-- 
GS d->? s:++>+++ a+ C++++ UL+++ UH++ P++ L++ E+++ W- N++ o-- K-
w--- !O M- V- PS+>++ PE Y+>++ PGP+ !t !5 !X !R !tv  b+++ DI+++
D? G+ e++++ h+ r? y?



More information about the printers mailing list