Ruby interface to pHash
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib data inspect Dec 1, 2016
spec
.gitignore
Gemfile
LICENSE.txt
README.markdown
pHash.gemspec

README.markdown

pHash

Interface to pHash.

Installation

gem install pHash

You can specify path to pHash library explicitly using environment variable like PHASH_LIB=/opt/local/lib/libpHash.dylib.

There are two problems with official version 0.9.6 of pHash. Both are fixed in a fork of pHash.

Dependencies

Usage

Compare two mp3s:

require 'phash/audio'

a = Phash::Audio.new('first.mp3')
b = Phash::Audio.new('second.mp3')
a.similarity(b)

or just

a % b

Get bunch of comparators and work with them:

audios = Phash::Audio.for_paths(Dir['**/*.{mp3,wav}'])
audios.combination(2) do |a, b|
  similarity = a % b
  # work with similarity
end

Videos:

require 'phash/video'

Phash::Video.new('first.mp4') % Phash::Video.new('second.mp4')

Images:

require 'phash/image'

Phash::Image.new('first.jpg') % Phash::Image.new('second.png')

Texts:

require 'phash/text'

Phash::Text.new('first.txt') % Phash::Text.new('second.txt')

Copyright

Copyright (c) 2011-2017 Ivan Kuchin. Released under the GPLv3 as required by license of underlying pHash library. See LICENSE.txt for details.