Node module for using the TinEye MatchEngine API.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
README.md
matchengine.js
package-lock.json
package.json

README.md

node-matchengine

Node module for using the TinEye MatchEngine API.

var ME = require("matchengine")({
    username: "MATCHENGINE_USERNAME",
    password: "MATCHENGINE_PASSWORD"
});

ME.add("test.jpg", "test", function() {
    ME.similar("test/test.jpg", function(err, matches) {
        console.log("Similar images:");
        matches.forEach(function(item) {
            console.log(" - ", item.filepath);
        });
    });
});

Installation

npm install matchengine

API

add(fileName, dirName, callback)

Upload an image file to MatchEngine and put it in the specified directory. For example if you were to upload:

add("/var/data/test.jpg", "sample")

You should end up with a file with an ID of: "sample/test.jpg" in the MatchEngine index.

fileName can also be an array of files to upload.

similar(ID, callback)

Return a list of objects representing other pre-uploaded files which are similar to the specified file ID. For example:

ME.similar("sample/test.jpg", function(err, matches) {
    matches.forEach(function(match) {
        console.log(match.filepath + " " + match.score + "% match.");
    });
});

The object returned as a match would look something like this:

{
    score: '97.60',
    target_overlap_percent: '99.98',
    overlay: 'overlay/?query=sample/test1.jpg&target=sample/test2.jpg&m21=-3.87874e-05&m22=1.00005&m23=-0.0119187&m11=1.00005&m13=-0.00554278&m12=3.87874e-05',
    query_overlap_percent: '100.00',
    filepath: 'sample/test2.jpg'
}

urlSimilar(url, callback)

Given the URL of an image, return a list of similar images from the database (in the same format as the similar() method). For example:

ME.urlSimilar("http://test.com/test.jpg", function(err, matches) {
    matches.forEach(function(match) {
        console.log(match.filepath + " " + match.score + "% match.");
    });
});

The image at the specified URL is not added to the MatchEngine index.

del(ID, callback)

Given a specified MatchEngine file ID (for example "sample/test.jpg"), delete that particular image from the index. It will no longer be returned in the results.

list(callback)

Returns a list of all the file IDs available in the MatchEngine index. For example:

ME.list(function(err, ids) {
    ids.forEach(function(id) {
        console.log(id);
    });
});

Credits

Created by John Resig.

Released under an MIT license.