Visual grep, greps for images in another image
visgrep [options] image.png detect.png match.png ...
visgrep is a program that greps for image in another image.
The detect.png and match.png files can also be .pat files.
All .pat files are created using png2pat(1) or rgb2pat(1) . The image.png is scanned for detect.pat starting from X,Y given in parameters. When detect.pat is found, then all the match.pat files are scanned at an offset of x,y given in parameters. If a match is found, then visgrep prints the x,y and index of the item.
For example, image.png is a screenshot and match1.pat .. match5.pat are images of letters a to e. Each of these letters is enclosed in a blue box, so detect.pat is an image of the upper left corner of the box. This box is not included in the match*.pat files, so they are actually offset 5 pixels down and 4 pixels to the left. You might run it like this then:
visgrep -x-4 -y5 image.png match_corner.pat match_a.pat match_b.bat ...
Etc, with all matches listed. Now suppose the screen showed ace so visgrep might output:
10,10 0
50,10 2
90,10 4
Showing that match_a.pat (index 0) is at 10,10 on the screen. If no match is found even though the detection image is found, the index will be -1.
A summary of options is included below.
-h
Show summary of options.
-x
Set x offset for detection matching.
-y
Set y offset for detection matching.
-X
Start scanning at X.
-Y
Start scanning at Y.
-t
Set tolerance for 'fuzzy' matches, higher numbers are more tolerant.
0
at least one match was made.
1
no matches were made.
2
an error occured.
visgrep was written by Steve Slaven <[email protected]>.
This manual page was written by Aurelien Jarno <[email protected]>, for the Debian project (but may be used by others).