ImageEn, unit iexGoogleApi |
|
TIEGWebDetection
Declaration
TIEGWebDetection = record
webEntities: array of TIEGWebEntity; // Deduced entities from similar images on the Internet
fullMatchingImages: TStringList; // Fully matching images from the Internet. Can include resized copies of the query image
partialMatchingImages: TStringList; // Partial matching images from the Internet. Those images are similar enough to share some key-point features. For example an original image will likely have partial matching for its crops
pagesWithMatchingImages: TStringList; // Web pages containing the matching images from the Internet
visuallySimilarImages: TStringList; // The visually similar image results
bestGuessLabels: array of TIEGWebLabel; // The service's best guess as to the topic of the request image. Inferred from similar images on the open web
end;
Description
Results array for Web Entities and Pages (iegrWebDetection request)
Detects references and related web information for an image, including:
◼Best guess label: A best guess as to the topic of the requested image inferred from similar images on the Internet
◼Inferred entities (labels/descriptions) from similar images on the Web
◼Full matching images: A list of URLs for fully matching images of any size on the Internet
◼Partial matching images: A list of URLs for images that share key-point features, such as a cropped version of the original image
◼Pages with matching images: A list of Webpages with an image that matches one of the above rules
◼Visually similar images: A list of URLs for images that share some features with the original image
Cursor := crHourglass;
lblSubmitting.Visible := True;
GVision := TIEGoogleVision.Create( MY_API_KEY );
try
// Use recommended delivery size (for faster processing)
GVision.SendImageWidth := 640;
GVision.SendImageHeight := 480;
GVision.RequestTypes := [iegrWebDetection, iegrSafeSearchDetection, iegrLandmarkDetection];
GVision.ProcessImage( edtFilename.Text );
lbxResults.Clear();
if Length( GVision.WebDetection.bestGuessLabels ) > 0 then
lbxResults.Items.Add( 'This image is likely to be: ' + GVision.WebDetection.bestGuessLabels[0].webLabel );
if GVision.HasLandmarkAnnotations then
begin
lbxResults.Items.Add( 'This image is the landmark: ' + GVision.LandmarkAnnotations[0].description );
lbxResults.Items.Add( 'Latitude: ' + LatLongToStr( GVision.LandmarkAnnotations[0].latitude, True ));
lbxResults.Items.Add( 'Longitude: ' + LatLongToStr( GVision.LandmarkAnnotations[0].longitude, False ));
end;
lbxResults.Items.Add( format( 'Found %d matching images on the web', [ GVision.WebDetection.fullMatchingImages.Count ]));
lbxResults.Items.AddStrings( GVision.WebDetection.fullMatchingImages );
lbxResults.Items.Add( format( 'Found %d pages on the web containing this image', [ GVision.WebDetection.pagesWithMatchingImages.Count ]));
lbxResults.Items.AddStrings( GVision.WebDetection.pagesWithMatchingImages );
if GVision.SafeSearchAnnotation.adult in [ieglLikely, ieglVeryLikely] then
lbxResults.Items.Add( 'Likely to be an ADULT image' );
if GVision.SafeSearchAnnotation.violence in [ieglLikely, ieglVeryLikely] then
lbxResults.Items.Add( 'Likely to be a VIOLENT image' );
finally
Cursor := crDefault;
lblSubmitting.Visible := False;
GVision.Free;
end;
See Also
◼WebDetection