Skip to content

taurenshaman/imagehash

This branch is 7 commits ahead of dmpetrov/imagehash:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

078c499 · Nov 18, 2020

History

73 Commits
Nov 18, 2020
Dec 11, 2016
Apr 16, 2017
Apr 16, 2017
Oct 29, 2016
Apr 16, 2017
Apr 16, 2017
Oct 29, 2016
Oct 29, 2016
Mar 4, 2013
Jun 11, 2019
Oct 29, 2016
Oct 30, 2016
Mar 2, 2013
Oct 31, 2016

Repository files navigation

ImageHash

I wanna get the image hash based on pixels value. I reached this article: https://fullstackml.com/wavelet-image-hash-in-python-3504fdd282b5

Then I give a try:

  1. Directly translate the code from python to C#. Failed because pywt.wavedec2 is too complicated and the search result are all about Matlab -_-
see csharp/Vision/Tools/ImageHelper.cs
  1. Use IronPython. Failed because PIL library has many .pyd files (_imaging) which are not supported by IronPython.
see csharp/Vision/Runtime/Python.cs
  1. Use Process and commandline, redirect the output. Worked.
see csharp/Vision/Runtime/PythonCommand.cs

4. If considering deployment, ImageHash can be a service with python backend. The simplest way. e.g. The media node has a copy: [Get hash of an image](http://nodes.chuci.info/media.html)


Following is the original Readme

A image hashing library written in Python. ImageHash supports:

  • average hashing (aHash)
  • perception hashing (pHash)
  • difference hashing (dHash)
  • wavelet hashing (wHash)

Travis Coveralls

Requirements

Based on PIL/Pillow Image, numpy and scipy.fftpack (for pHash) Easy installation through pypi.

Basic usage

>>> from PIL import Image
>>> import imagehash
>>> hash = imagehash.average_hash(Image.open('test.png'))
>>> print(hash)
d879f8f89b1bbf
>>> otherhash = imagehash.average_hash(Image.open('other.bmp'))
>>> print(otherhash)
ffff3720200ffff
>>> print(hash == otherhash)
False
>>> print(hash - otherhash)
36

The demo script find_similar_images illustrates how to find similar images in a directory.

Source hosted at github: https://github.com/JohannesBuchner/imagehash

Changelog

  • 3.0: dhash had a bug: It computed pixel differences vertically, not horizontally.
    I modified it to follow dHash. The old function is available as dhash_vertical.
  • 2.0: added whash
  • 1.0: initial ahash, dhash, phash implementations.

Packages

No packages published

Languages

  • Python 44.8%
  • C# 39.8%
  • HTML 15.4%