Searching with Metadata and Images


Assume that in a MediaCollection you have images of boats and cars, and that each image has an imageType metadata tag set to either car or boat. In addition, each image also has a metadata tag of primaryColor set to red, green, or blue. Thus, given a particular red car, you can conduct a metadata search followed by a visual search as follows:


// make a new MediaCollection object and populate it from a collection on disk

MediaCollection mc = Eve.newMediaCollection(); directoryPath );


// find all MediaObjects tagged as cars in the collection

SearchResults carResults[] = mc.metadataFind( "imageType", "car" );


// get a list of all objects tagged as red in the collection

SearchResults redResults[] = mc.metadataFind( "color", "red" );


// combine the two lists using a Boolean AND operation

SearchResults worker = Eve.newSearchResults();

SearchResults target[] = worker.and( carResults, redResults );


// load the source image (the red car)

MediaObject source = Eve.newMediaObject();

Source.loadFrom( myMediaObjectPath );


// perform the visual search

SearchParameters parameters = Eve.newSearchParameters();

Parameters.setSearch( Eve.REGION, true, 1.0 );

SearchResults finalResults[] = source, parameters, target[] );