Skip to content

keeferrourke/imgrep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

imgrep

imgrep is a command-line utility in Go to search for keywords found within images.

coverage goreport

Installation

imgrep depends on Tesseract.

  • On Fedora: sudo dnf install tesseract-devel
  • On Debian: sudo apt-get install libtesseract-dev
  • On macOS: brew install tesseract

Prerequisites

Linux:

# Fedora
sudo dnf install tesseract tesseract-devel leptonica-devel golang

# Debian
sudo apt-get install tesseract-ocr libtesseract-dev libleptonica-dev golang

macOS:

  1. Install Go
  2. Install homebrew
brew install tesseract

Get imgrep

Make sure your $GOPATH is set, then run:

# fetch src and install binary
go get -u github.com/keeferrourke/imgrep
go install github.com/keeferrourke/imgrep

Usage

imgrep like grep, searches file contents for text. imgrep works exclusively on images however, using text extracted using OCR as the search haystack.

imgrep comes with two interfaces; a CLI as one might expect, and a web-UI graphical front-end.

CLI

Because OCR is expensive to the CPU, imgrep can pre-process and index files by keywords stored to a database. This database is queried unless specified otherwise. To preindex an entire directory (including subdirectories):

imgrep init # pre-process and index image files in working directory

By default, imgrep uses this database of pre-indexed files to perform simple queries. Because of the nature of OCR, picked up keywords may not be accurate, so a sort of "fuzzy-search" is employed here. To mimic the original usage of grep, imgrep queries are case-sensitive. The -i option is provided to ignore case specifiers of query strings — it is nearly always recommended to run your queries with this option.

To check preindexed directories:

imgrep search -i QUERY

To use imgrep without checking against the database of preindexed files, simply call

imgrep search -n -i QUERY

Like the grep family of functions, imgrep is useful with Unix-pipes:

# Example: Count the number of images that contain the first line of a
#          plain-text file
head -n1 myfile | imgrep search -n -i - | wc -l

# Example: Open the first file that matches a search
xdg-open "$(imgrep s learn | head -n1)"

Web UI

See imgrep-web.

License

imgrep is free software licensed under the MIT license.

Copyright (c) 2017 Keefer Rourke and Ivan Zhang.

See LICENSE for details.

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages