phashion 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +13 -5
 - data/CHANGES.md +8 -9
 - data/lib/phashion.rb +12 -2
 - data/lib/phashion/version.rb +1 -1
 - data/test/test_phashion.rb +19 -2
 - metadata +3 -4
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            !binary "U0hBMQ==":
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            !binary  
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: !binary |-
         
     | 
| 
      
 4 
     | 
    
         
            +
                MDIxY2E0ZDAwODcwMjNhMjk1NzQyMTg5ZmU3NGE3MGYxY2YzMTJjZA==
         
     | 
| 
      
 5 
     | 
    
         
            +
              data.tar.gz: !binary |-
         
     | 
| 
      
 6 
     | 
    
         
            +
                MDU4NmM0NGQxZmYzMzkxZGQ5ZmYzOTUxYzFhMDk0MjIxYzQ5ZDAzNw==
         
     | 
| 
      
 7 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 8 
     | 
    
         
            +
              metadata.gz: !binary |-
         
     | 
| 
      
 9 
     | 
    
         
            +
                NTRhZDJjZDFiNGVlZDhjZGQ0ZjgwMGU5OWRiNjA4MTUxMzExNDVhYmM2NGZh
         
     | 
| 
      
 10 
     | 
    
         
            +
                MjJkYTYyNDZiZTYyZWU1NmZhODg4ZDMxNDM3ZTA4YTU2Y2YyOTgzZDA0NDVk
         
     | 
| 
      
 11 
     | 
    
         
            +
                OGUzNzg4NWVjODI3ZjQ4ODljMjkyNWYxYmNjYTc1NWQwODExNWY=
         
     | 
| 
      
 12 
     | 
    
         
            +
              data.tar.gz: !binary |-
         
     | 
| 
      
 13 
     | 
    
         
            +
                NjA2NDI5YTdkMjRmNGQ0ZDgwNDAwZGI5NjA0NTEzNThkY2NlZWFkMDUzMWI5
         
     | 
| 
      
 14 
     | 
    
         
            +
                ODM3NWRmN2U1YmViYTUwMjA4ZGE3ZjI3OTVkZjBlZjNiZGZkNWFmZmJlNzc4
         
     | 
| 
      
 15 
     | 
    
         
            +
                ZjgzOTM0YWIxMzg4NGUyMDFmNDFlM2E2MDU2ODdkMDc5N2I2Mjc=
         
     | 
    
        data/CHANGES.md
    CHANGED
    
    | 
         @@ -1,5 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            History
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
      
 2 
     | 
    
         
            +
            =======
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            1.1.1 
         
     | 
| 
      
 5 
     | 
    
         
            +
            -----
         
     | 
| 
      
 6 
     | 
    
         
            +
            * Added Ruby method to call into pHash's Mexican Hat Wavelet funcition (issue #37, Terence Lee / @hone)
         
     | 
| 
      
 7 
     | 
    
         
            +
            * Removed duplicate version reference
         
     | 
| 
       3 
8 
     | 
    
         | 
| 
       4 
9 
     | 
    
         
             
            1.1.0
         
     | 
| 
       5 
10 
     | 
    
         
             
            -----
         
     | 
| 
         @@ -9,7 +14,7 @@ History 
     | 
|
| 
       9 
14 
     | 
    
         | 
| 
       10 
15 
     | 
    
         
             
            1.0.8
         
     | 
| 
       11 
16 
     | 
    
         
             
            ------
         
     | 
| 
       12 
     | 
    
         
            -
            * Renamed the pHashion tar.gz archive as "pHash-0.9.6.tar.gz" to solve/enable install from github 
     | 
| 
      
 17 
     | 
    
         
            +
            * Renamed the pHashion tar.gz archive as "pHash-0.9.6.tar.gz" to solve/enable install from github.
         
     | 
| 
       13 
18 
     | 
    
         | 
| 
       14 
19 
     | 
    
         
             
            1.0.7
         
     | 
| 
       15 
20 
     | 
    
         
             
            ------
         
     | 
| 
         @@ -27,29 +32,24 @@ History 
     | 
|
| 
       27 
32 
     | 
    
         | 
| 
       28 
33 
     | 
    
         
             
            1.0.5
         
     | 
| 
       29 
34 
     | 
    
         
             
            -------
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
35 
     | 
    
         
             
            * Fix CImg.h compilation problems. [#10]
         
     | 
| 
       32 
36 
     | 
    
         | 
| 
       33 
37 
     | 
    
         
             
            1.0.4
         
     | 
| 
       34 
38 
     | 
    
         
             
            -------
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
39 
     | 
    
         
             
            * Fix pthread linking on Ubuntu 11.04
         
     | 
| 
       37 
40 
     | 
    
         | 
| 
       38 
41 
     | 
    
         
             
            1.0.3
         
     | 
| 
       39 
42 
     | 
    
         
             
            -------
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
43 
     | 
    
         
             
            * Update pHash to version 0.9.3 and CImg 1.4.7.
         
     | 
| 
       42 
44 
     | 
    
         
             
            * Fix a few build issues.
         
     | 
| 
       43 
45 
     | 
    
         | 
| 
       44 
46 
     | 
    
         
             
            1.0.2
         
     | 
| 
       45 
47 
     | 
    
         
             
            -------
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
48 
     | 
    
         
             
            * Make installation much easier by distributing and building locally all the native dependencies.
         
     | 
| 
       48 
49 
     | 
    
         
             
              This includes pHash 0.9.0 and CImg 1.3.4.
         
     | 
| 
       49 
50 
     | 
    
         | 
| 
       50 
51 
     | 
    
         
             
            1.0.1
         
     | 
| 
       51 
52 
     | 
    
         
             
            -------
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
53 
     | 
    
         
             
            * Remove RubyInline, use standard Ruby extension infrastructure.
         
     | 
| 
       54 
54 
     | 
    
         
             
            * Update duplicate threshold constant based on wider image testing.
         
     | 
| 
       55 
55 
     | 
    
         
             
            * Make duplicate threshold variable so users can tune it based on their dataset.
         
     | 
| 
         @@ -58,5 +58,4 @@ History 
     | 
|
| 
       58 
58 
     | 
    
         | 
| 
       59 
59 
     | 
    
         
             
            1.0.0
         
     | 
| 
       60 
60 
     | 
    
         
             
            -------
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
            Initial release.
         
     | 
| 
      
 61 
     | 
    
         
            +
            * Initial release.
         
     | 
    
        data/lib/phashion.rb
    CHANGED
    
    | 
         @@ -9,8 +9,6 @@ 
     | 
|
| 
       9 
9 
     | 
    
         
             
            require 'rbconfig'
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
            module Phashion
         
     | 
| 
       12 
     | 
    
         
            -
              VERSION = '1.0.8'
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
12 
     | 
    
         
             
              class Image
         
     | 
| 
       15 
13 
     | 
    
         
             
                DEFAULT_DUPE_THRESHOLD = 15
         
     | 
| 
       16 
14 
     | 
    
         | 
| 
         @@ -24,6 +22,10 @@ module Phashion 
     | 
|
| 
       24 
22 
     | 
    
         
             
                  Phashion.hamming_distance(fingerprint, other.fingerprint)
         
     | 
| 
       25 
23 
     | 
    
         
             
                end
         
     | 
| 
       26 
24 
     | 
    
         | 
| 
      
 25 
     | 
    
         
            +
                def mh_distance_from(other)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  Phashion.hamming_distance2(mh_fingerprint, other.mh_fingerprint)
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
       27 
29 
     | 
    
         
             
                def duplicate?(other, opts={})
         
     | 
| 
       28 
30 
     | 
    
         
             
                  threshold = opts[:threshold] || DEFAULT_DUPE_THRESHOLD
         
     | 
| 
       29 
31 
     | 
    
         | 
| 
         @@ -33,6 +35,14 @@ module Phashion 
     | 
|
| 
       33 
35 
     | 
    
         
             
                def fingerprint
         
     | 
| 
       34 
36 
     | 
    
         
             
                  @hash ||= Phashion.image_hash_for(@filename)
         
     | 
| 
       35 
37 
     | 
    
         
             
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                def mh_fingerprint
         
     | 
| 
      
 40 
     | 
    
         
            +
                  @mh_hash ||= Phashion.mh_hash_for(@filename)
         
     | 
| 
      
 41 
     | 
    
         
            +
                end
         
     | 
| 
      
 42 
     | 
    
         
            +
              end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
              def self.mh_hash_for(filename, alpha = 2.0, lvl = 1.0)
         
     | 
| 
      
 45 
     | 
    
         
            +
                _mh_hash_for(filename, alpha, lvl)
         
     | 
| 
       36 
46 
     | 
    
         
             
              end
         
     | 
| 
       37 
47 
     | 
    
         | 
| 
       38 
48 
     | 
    
         
             
              def self.so_file
         
     | 
    
        data/lib/phashion/version.rb
    CHANGED
    
    
    
        data/test/test_phashion.rb
    CHANGED
    
    | 
         @@ -50,6 +50,25 @@ class TestPhashion < Minitest::Test 
     | 
|
| 
       50 
50 
     | 
    
         
             
                assert_equal expected, rows.first.first
         
     | 
| 
       51 
51 
     | 
    
         
             
              end
         
     | 
| 
       52 
52 
     | 
    
         | 
| 
      
 53 
     | 
    
         
            +
              def test_mh_hash_for
         
     | 
| 
      
 54 
     | 
    
         
            +
                jpg = File.dirname(__FILE__) + '/jpg/Broccoli_Super_Food.jpg'
         
     | 
| 
      
 55 
     | 
    
         
            +
                png = File.dirname(__FILE__) + '/png/Broccoli_Super_Food.png'
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                hash1 = Phashion.mh_hash_for jpg
         
     | 
| 
      
 58 
     | 
    
         
            +
                hash2 = Phashion.mh_hash_for png
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                assert_kind_of Array, hash1
         
     | 
| 
      
 61 
     | 
    
         
            +
                assert_kind_of Array, hash2
         
     | 
| 
      
 62 
     | 
    
         
            +
                assert_in_delta 0.100, Phashion.hamming_distance2(hash1, hash2), 0.028
         
     | 
| 
      
 63 
     | 
    
         
            +
              end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
              def test_mh_distance_from
         
     | 
| 
      
 66 
     | 
    
         
            +
                jpg = File.dirname(__FILE__) + '/jpg/Broccoli_Super_Food.jpg'
         
     | 
| 
      
 67 
     | 
    
         
            +
                png = File.dirname(__FILE__) + '/png/Broccoli_Super_Food.png'
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
                assert_in_delta 0.100, Phashion::Image.new(jpg).mh_distance_from(Phashion::Image.new(png)), 0.028
         
     | 
| 
      
 70 
     | 
    
         
            +
              end
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
       53 
72 
     | 
    
         
             
              def test_duplicate_detection
         
     | 
| 
       54 
73 
     | 
    
         
             
                files = %w(86x86-0a1e.jpeg 86x86-83d6.jpeg 86x86-a855.jpeg)
         
     | 
| 
       55 
74 
     | 
    
         
             
                images = files.map {|f| Phashion::Image.new("#{File.dirname(__FILE__) + '/../test/jpg/'}#{f}")}
         
     | 
| 
         @@ -58,8 +77,6 @@ class TestPhashion < Minitest::Test 
     | 
|
| 
       58 
77 
     | 
    
         
             
                assert_duplicate images[0], images[2]
         
     | 
| 
       59 
78 
     | 
    
         
             
              end
         
     | 
| 
       60 
79 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
              
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
80 
     | 
    
         
             
              def test_duplicate_detection_2
         
     | 
| 
       64 
81 
     | 
    
         
             
                files = %w(b32aade8c590e2d776c24f35868f0c7a588f51e1.jpeg df9cc82f5b32d7463f36620c61854fde9d939f7f.jpeg e7397898a7e395c2524978a5e64de0efabf08290.jpeg)
         
     | 
| 
       65 
82 
     | 
    
         
             
                images = files.map {|f| Phashion::Image.new("#{File.dirname(__FILE__) + '/../test/jpg/'}#{f}")}
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: phashion
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.1.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Mike Perham
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2014- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2014-04-14 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rake-compiler
         
     | 
| 
         @@ -114,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       114 
114 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       115 
115 
     | 
    
         
             
            requirements: []
         
     | 
| 
       116 
116 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       117 
     | 
    
         
            -
            rubygems_version: 2. 
     | 
| 
      
 117 
     | 
    
         
            +
            rubygems_version: 2.2.2
         
     | 
| 
       118 
118 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       119 
119 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       120 
120 
     | 
    
         
             
            summary: Simple wrapper around the pHash library
         
     | 
| 
         @@ -140,4 +140,3 @@ test_files: 
     | 
|
| 
       140 
140 
     | 
    
         
             
            - test/png/grass.png
         
     | 
| 
       141 
141 
     | 
    
         
             
            - test/png/linux.png
         
     | 
| 
       142 
142 
     | 
    
         
             
            - test/test_phashion.rb
         
     | 
| 
       143 
     | 
    
         
            -
            has_rdoc: 
         
     |