close menu

What is this?

imgrep is a command-line utility written in Go. Much like grep, it searches for text snippets within image files using Tesseract OCR.

imgrep comes with two inferences; a CLI that follows Unix software philosophies, and a web-UI graphical front-end.

Installation

Dependencies

sudo dnf install tesseract-devel leptonica-devel golang                      # Fedora
sudo apt-get install tesseract-ocr libtesseract-dev libleptonica-dev golang  # Debian
brew install tesseract                                                       # macOS

Get and install

go get -u github.com/keeferrourke/imgrep
go install github.com/keeferrourke/imgrep

Usage

imgrep is a command line utility. Somewhat like grep, it searches for text within images using OCR extracted text as the search haystack.

Because OCR is a slow process for many files on some machines, imgrep pre-processes and indexes files by keywords in a sqlite database found at $HOME/.imgrep/imgrep.db. To add a directory to the database, run:

imgrep init

To check preindexed directories (ignoring case specifiers):

imgrep search -i QUERY

This effectively pays for processing time in advance so results are returned quickly. In the case you don't want to pre-index a directory, you can run a search as follows:

imgrep search -n -i QUERY

Note this might take a long time (a few seconds to several minutes) And hence preindexing directories is highly recommended.

Web UI

There is an optional web interface available. You can install it by:

go get -u github.com/keeferrourke/imgrep-web
imgrep search -n -i QUERY
go install github.com/keeferrourke/imgrep-web

Start a server on localhost:1337 by running

imgrep-web server &

Then just visit localhost:1337 in your favourite browser

Credits

imgrep is written by Keefer Rourke and Ivan Zhang. The imgrep-web server was written by Keefer Rourke and Ivan Zhang. The web-ui front-end was written by Thomas Dedinsky and polished by Ivan Zhang.

License

imgrep is free software released under the MIT license. See LICENSE for details.