deda_parse_print
Read tracking dots from a scanned colour-laser page
TLDR
SYNOPSIS
deda_parse_print [options] file
DESCRIPTION
deda_parse_print looks for the yellow tracking-dot pattern that many colour laser printers put on a page, then prints the pattern it found and, when it can, the decoded fields. Those fields can include a manufacturer, a serial number, a timestamp, and the raw matrix. The input should be a lossless scan at about 300 dpi, with the scanner's contrast left neutral so the dots are not thresholded away.If no pattern is found, the command says so and suggests a 300 dpi lossless scan. When several valid matrices are present, it lists each decoded matrix and how often it occurred.
PARAMETERS
file
Scan to read. Lossless images such as PNG work better than JPEG.-d dpi, --dpi dpi
Resolution of the scan. 0, the default, asks the reader to detect it.-m file, --mask file
Inked-area mask. Use this when file is a monochrome image of the dots rather than a full-colour scan.-o, --only-detect
Print the pattern id and exit without decoding the payload.-v, --verbose
Repeat to print more diagnostic detail.
CAVEATS
Monochrome pages and inkjet prints often have no tracking dots, so a clean result does not by itself prove anything about the printer. A scanner or driver that removes paper texture can erase the dots before this command sees them.The decoder knows specific patterns. An unknown layout needs deda_extract_yd first. DPI detection falls back to a guess when the file does not record a resolution; pass -d for a scan that is not 300 dpi.
HISTORY
deda_parse_print is part of DEDA (tracking Dots Extraction, Decoding and Anonymisation), written by Timo Richter and Stephan Escher and described in their 2018 paper on forensic analysis and anonymisation of printed documents. The tools are Python programs installed with the deda package.
