diff -Nur pHash-0.9.0/bindings/java/org/pHash/AudioHash.java pHash/bindings/java/org/pHash/AudioHash.java --- pHash-0.9.0/bindings/java/org/pHash/AudioHash.java 2010-05-14 15:26:38.796783753 +0200 +++ pHash/bindings/java/org/pHash/AudioHash.java 2010-05-14 15:47:21.734907618 +0200 @@ -2,5 +2,9 @@ public class AudioHash extends Hash { - int[] hash; + protected int[] hash; + + public int[] getHash() { + return hash; + } } diff -Nur pHash-0.9.0/bindings/java/org/pHash/DCTImageHash.java pHash/bindings/java/org/pHash/DCTImageHash.java --- pHash-0.9.0/bindings/java/org/pHash/DCTImageHash.java 2010-05-14 15:26:38.796783753 +0200 +++ pHash/bindings/java/org/pHash/DCTImageHash.java 2010-05-14 15:47:17.534907601 +0200 @@ -2,5 +2,9 @@ public class DCTImageHash extends ImageHash { - long hash; + protected long hash; + + public long getHash() { + return hash; + } } diff -Nur pHash-0.9.0/bindings/java/org/pHash/Hash.java pHash/bindings/java/org/pHash/Hash.java --- pHash-0.9.0/bindings/java/org/pHash/Hash.java 2010-05-14 15:26:38.796783753 +0200 +++ pHash/bindings/java/org/pHash/Hash.java 2010-05-14 15:47:10.136157474 +0200 @@ -1,6 +1,14 @@ package org.pHash; -abstract class Hash +public abstract class Hash { - String filename; + protected String filename; + + public String getFilename() { + return filename; + } + + public void setFilename(String filename) { + this.filename = filename; + } } diff -Nur pHash-0.9.0/bindings/java/org/pHash/ImageHash.java pHash/bindings/java/org/pHash/ImageHash.java --- pHash-0.9.0/bindings/java/org/pHash/ImageHash.java 2010-05-14 15:26:38.796783753 +0200 +++ pHash/bindings/java/org/pHash/ImageHash.java 2010-05-07 08:46:27.954908003 +0200 @@ -1,5 +1,5 @@ package org.pHash; -abstract class ImageHash extends Hash +public abstract class ImageHash extends Hash { } diff -Nur pHash-0.9.0/bindings/java/org/pHash/MHImageHash.java pHash/bindings/java/org/pHash/MHImageHash.java --- pHash-0.9.0/bindings/java/org/pHash/MHImageHash.java 2010-05-14 15:26:38.796783753 +0200 +++ pHash/bindings/java/org/pHash/MHImageHash.java 2010-05-14 15:47:00.394907698 +0200 @@ -2,5 +2,19 @@ public class MHImageHash extends ImageHash { - byte[] hash; + protected byte[] hash; + + public MHImageHash() { + + } + + public MHImageHash(byte[] hash) { + if(hash.length == 72) { + this.hash = hash; + } + } + + public byte[] getHash() { + return hash; + } } diff -Nur pHash-0.9.0/bindings/java/org/pHash/MVPTree.java pHash/bindings/java/org/pHash/MVPTree.java --- pHash-0.9.0/bindings/java/org/pHash/MVPTree.java 2010-05-14 15:26:38.796783753 +0200 +++ pHash/bindings/java/org/pHash/MVPTree.java 2010-05-10 15:10:57.504908213 +0200 @@ -2,11 +2,16 @@ public class MVPTree { -String mvpFile; -MVPTree(String filename) { mvpFile = filename; } -public native boolean create(Hash[] hashes); -public native Hash[] query(Hash hash, float radius, float thresh, - int maxResults); -public native boolean add(Hash[] hashes); + protected String mvpFile; + + public MVPTree(String filename) { + mvpFile = filename; + } + + public native boolean create(Hash[] hashes); + + public native Hash[] query(Hash hash, float radius, float thresh, int maxResults); + + public native boolean add(Hash[] hashes); } diff -Nur pHash-0.9.0/bindings/java/org/pHash/pHash.java pHash/bindings/java/org/pHash/pHash.java --- pHash-0.9.0/bindings/java/org/pHash/pHash.java 2010-05-14 15:26:38.796783753 +0200 +++ pHash/bindings/java/org/pHash/pHash.java 2010-05-14 14:09:13.154907636 +0200 @@ -5,19 +5,21 @@ public class pHash { - native static VideoHash videoHash(String file); - native static AudioHash audioHash(String file); - native static DCTImageHash dctImageHash(String file); - native static MHImageHash mhImageHash(String file); - native static TextHash textHash(String file); - native static double imageDistance(ImageHash hash1, ImageHash hash2); - native static double audioDistance(AudioHash hash1, AudioHash hash2); - native static double videoDistance(VideoHash hash1, VideoHash hash2, int threshold); - native static int textDistance(TextHash txtHash1, TextHash txtHash2); + public native static VideoHash videoHash(String file); + public native static AudioHash audioHash(String file); + public native static DCTImageHash dctImageHash(String file); + public native static MHImageHash mhImageHash(String file); + public native static TextHash textHash(String file); + public native static double imageDistance(ImageHash hash1, ImageHash hash2); + public native static double audioDistance(AudioHash hash1, AudioHash hash2); + public native static double videoDistance(VideoHash hash1, VideoHash hash2, int threshold); + public native static int textDistance(TextHash txtHash1, TextHash txtHash2); private native static void pHashInit(); private native static void cleanup(); + + static { - System.loadLibrary("pHash-jni"); + System.loadLibrary("pHash-jni"); pHashInit(); } @@ -40,83 +42,79 @@ return hashes; } + public static void main(String args[]) { - - int i = 0; - if(args[i].equals("-mvp")) - { - MVPTree mvp = new MVPTree("mvp"); - MHImageHash[] hashes = getMHImageHashes(args[1]); - boolean result = mvp.create(hashes); - if(result) - { - System.out.println("Successfully created MVP tree"); - Hash[] results = mvp.query(hashes[0], 100, 20, 30); - if(results != null && results.length > 0) - { - System.out.println("Query found " + results.length + " results"); - for(int j = 0; j < results.length; ++j) - System.out.println("File: " + results[j].filename); - } - - MHImageHash[] newHashes = getMHImageHashes(args[2]); - - boolean added = mvp.add(newHashes); - if(added) - { - System.out.println("Hashes added successfully."); - Hash[] foundHashes = mvp.query(newHashes[0], 100, 20, 30); - if(foundHashes != null && foundHashes.length > 0) - { - System.out.println("Found newly added hash."); - } - } - } else - System.out.println("Creating tree failed"); - - } - else if(args[i].equals("-a")) - { - AudioHash audioHash1 = audioHash(args[1]); - AudioHash audioHash2 = audioHash(args[2]); - System.out.println("cs = " + audioDistance(audioHash1,audioHash2)); - } - else if(args[i].equals("-dct")) - { - DCTImageHash imHash = dctImageHash(args[1]); - DCTImageHash imHash2 = dctImageHash(args[2]); - System.out.println("File 1: " + imHash.filename); - System.out.println("File 2: " + imHash2.filename); - - System.out.println(imageDistance(imHash,imHash2)); - } - else if(args[i].equals("-mh")) - { - MHImageHash imHash = mhImageHash(args[1]); - MHImageHash imHash2 = mhImageHash(args[2]); - System.out.println("File 1: " + imHash.filename); - System.out.println("File 2: " + imHash2.filename); - - System.out.println(imageDistance(imHash,imHash2)); - - } - else if(args[i].equals("-v")) - { - VideoHash vHash = videoHash(args[1]); - VideoHash vHash2 = videoHash(args[2]); - System.out.println(videoDistance(vHash,vHash2, 21)); - } - else if(args[i].equals("-t")) - { - TextHash txtHash = textHash(args[1]); - TextHash txtHash2 = textHash(args[2]); - System.out.println(textDistance(txtHash,txtHash2)); - } - - pHash.cleanup(); + int i = 0; + if(args[i].equals("-mvp")) + { + MVPTree mvp = new MVPTree("mvp"); + MHImageHash[] hashes = getMHImageHashes(args[1]); + boolean result = mvp.create(hashes); + if(result) + { + System.out.println("Successfully created MVP tree"); + Hash[] results = mvp.query(hashes[0], 100, 20, 30); + if(results != null && results.length > 0) + { + System.out.println("Query found " + results.length + " results"); + for(int j = 0; j < results.length; ++j) + System.out.println("File: " + results[j].getFilename()); + } + + MHImageHash[] newHashes = getMHImageHashes(args[2]); + + boolean added = mvp.add(newHashes); + if(added) + { + System.out.println("Hashes added successfully."); + Hash[] foundHashes = mvp.query(newHashes[0], 100, 20, 30); + if(foundHashes != null && foundHashes.length > 0) + { + System.out.println("Found newly added hash."); + } + } + } else + System.out.println("Creating tree failed"); + } + else if(args[i].equals("-a")) + { + AudioHash audioHash1 = audioHash(args[1]); + AudioHash audioHash2 = audioHash(args[2]); + System.out.println("cs = " + audioDistance(audioHash1,audioHash2)); + } + else if(args[i].equals("-dct")) + { + DCTImageHash imHash = dctImageHash(args[1]); + DCTImageHash imHash2 = dctImageHash(args[2]); + System.out.println("File 1: " + imHash.getFilename()); + System.out.println("File 2: " + imHash2.getFilename()); + + System.out.println(imageDistance(imHash,imHash2)); + } + else if(args[i].equals("-mh")) + { + MHImageHash imHash = mhImageHash(args[1]); + MHImageHash imHash2 = mhImageHash(args[2]); + System.out.println("File 1: " + imHash.getFilename()); + System.out.println("File 2: " + imHash2.getFilename()); + + System.out.println(imageDistance(imHash,imHash2)); + + } + else if(args[i].equals("-v")) + { + VideoHash vHash = videoHash(args[1]); + VideoHash vHash2 = videoHash(args[2]); + System.out.println(videoDistance(vHash,vHash2, 21)); + } + else if(args[i].equals("-t")) + { + TextHash txtHash = textHash(args[1]); + TextHash txtHash2 = textHash(args[2]); + System.out.println(textDistance(txtHash,txtHash2)); + } + pHash.cleanup(); } - - } diff -Nur pHash-0.9.0/bindings/java/org/pHash/TextHash.java pHash/bindings/java/org/pHash/TextHash.java --- pHash-0.9.0/bindings/java/org/pHash/TextHash.java 2010-05-14 15:26:38.796783753 +0200 +++ pHash/bindings/java/org/pHash/TextHash.java 2010-05-14 15:46:49.166158483 +0200 @@ -2,5 +2,9 @@ public class TextHash extends Hash { - String[] hash; + protected String[] hash; + + public String[] getHash() { + return hash; + } } diff -Nur pHash-0.9.0/bindings/java/org/pHash/VideoHash.java pHash/bindings/java/org/pHash/VideoHash.java --- pHash-0.9.0/bindings/java/org/pHash/VideoHash.java 2010-05-14 15:26:38.796783753 +0200 +++ pHash/bindings/java/org/pHash/VideoHash.java 2010-05-14 15:46:30.185922515 +0200 @@ -2,5 +2,9 @@ public class VideoHash extends Hash { - long[] hash; + protected long[] hash; + + public long[] getHash() { + return hash; + } }