Decoding of Xerox-Type CPS Pattern

This demo allows the user to decode the CPS pattern of Xerox type CPS patterns. Depending on the printer, the time and date of the print-out as well as the serial number of the printer used, can be extracted. The result contains the image of the pattern as well as the extracted information.
More information CPS codes (a.k.a. tracking dots, yellow dots) can be found on the website of the Electronic Frontier Foundation

For further details please refer to:

J. van Beusekom: Optical Document Security in High Volume Office Environments, PhD Thesis

Notes:


As output you obtain the extracted information as well as the extracted code, e.g.:

===== Decoded Information =====
(date time serial)
24.06.05 18:44 324928
===== Extracted code =====
0 0 1 1 1 1 1 1 1 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 1 0 0 0 1 1
0 1 0 0 0 0 0 0 0 1 0 1 1 0 1
1 0 0 0 1 1 0 0 0 1 1 1 0 1 0
0 1 0 0 0 1 0 0 0 1 1 0 0 0 1
1 1 0 0 0 0 1 1 0 1 1 0 0 0 1
0 0 0 0 1 0 1 0 0 1 0 0 0 1 1
1 0 0 0 0 0 0 1 0 1 0 1 0 0 1


You can either submit an image through the form interface, or you can submit it programmatically through HTTP.

Form Interface

File (max. 50MByte):

Resolution [dpi]

If you do not have an image at hand or want to try some of our images, try one of these (note that results are cached, so this is faster than using a new image):

Programmatic Interface

To submit your image programmatically, you can simply POST to this URL; the image should be a parameter named "imagefile".

From the command line, you can do this using:

curl -D header.out -F 'imagefile=@input.png;type=image/png;resolution=600' http://demo-madm.dfki.uni-kl.de/cps-xerox-decode/index.php > output.html

You can also do this easily using the HTTP implementation in your favorite programming language (C#, Python, Java, Perl, etc.).