Skip to content
Detect duplicate (or similar) images. Written in Go.
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.
haar Cosmetic changes. Nov 20, 2017
candidate.go Added a histogram maximum value to the image hash. Sep 1, 2014
doc.go Implemented matching function. Yet untested. Sep 6, 2014
hamming.go Image Matcher now matches duplicates. Some false negatives still expe… Aug 28, 2014

Duplo - Detect Similar or Duplicate Images

Godoc Reference Go Report

This Go library allows you to perform a visual query on a set of images, returning the results in the order of similarity. This allows you to effectively detect duplicates with minor modifications (e.g. some colour correction or watermarks).

It is an implementation of Fast Multiresolution Image Querying by Jacobs et al. which uses truncated Haar wavelet transforms to create visual hashes of the images. The same method has previously been used in the imgSeek software and the retrievr website.


go get


import ""

// Create an empty store.
store := duplo.New()

// Add image "img" to the store.
hash, _ := duplo.CreateHash(img)
store.Add("myimage", hash)

// Query the store based on image "query".
hash, _ = duplo.CreateHash(query)
matches := store.Query(hash)
// matches[0] is the best match.


Possible Applications

  • Identify copyright violations
  • Save disk space by detecting and removing duplicate images
  • Search for images by similarity

Projects Using This Package

  • imgdup2go: A visual image duplicate finder.

More Information

For more information, please go to or get in touch.

You can’t perform that action at this time.