Sample code for 30+ languages & platforms
SQL Server

Google Vision Web Detection

See more Google Vision Examples

Demonstrates how to use the Cloud Cloud Vision API for the Web Detection method.

The Google Cloud Vision "web detection" API call performs web detection analysis on an image. When you send an image to the Vision API with the "web detection" feature enabled, the API returns information about web entities (objects, logos, landmarks, etc.) that are visually similar to objects in the image and are found on the web.

It includes:

  • Entity Recognition: The API identifies entities (objects, landmarks, logos, etc.) present in the image and provides information about them. This can include labels, descriptions, and additional metadata.
  • Web Pages: For recognized entities, the API retrieves information about web pages that contain visually similar images or information related to the entities found in the image.
  • Matching Images: The API may return URLs of images found on the web that are visually similar to the objects in the image being analyzed.
  • Best Guess Label: The API may also provide a "best guess" label or description for the image based on its analysis of the web entities.
  • Related Web Entities: Additionally, the API may return related web entities or concepts that are semantically related to the recognized objects.
    • Overall, the web detection feature of the Google Cloud Vision API allows you to perform reverse image search-like functionality, identifying objects in an image and providing information about similar objects found on the web. This can be useful for tasks such as image classification, content moderation, and visual search applications.

      Chilkat SQL Server Downloads

      SQL Server
      -- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
      --
      CREATE PROCEDURE ChilkatSample
      AS
      BEGIN
          DECLARE @hr int
          -- Important: Do not use nvarchar(max).  See the warning about using nvarchar(max).
          DECLARE @sTmp0 nvarchar(4000)
          DECLARE @success int
          SELECT @success = 0
      
          -- This example assumes the Chilkat API to have been previously unlocked.
          -- See Global Unlock Sample for sample code.
      
          DECLARE @http int
          EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
          IF @hr <> 0
          BEGIN
              PRINT 'Failed to create ActiveX component'
              RETURN
          END
      
          -- The following JSON is sent in the request body.
      
          -- {
          --   "requests": [
          --     {
          --       "image": {
          --         "source": {
          --           "imageUri": "gs://visionapi-demo/ali.jpg"
          --         }
          --       },
          --       "features": [
          --         {
          --           "maxResults": 10,
          --           "type": "WEB_DETECTION"
          --         }
          --       ]
          --     }
          --   ]
          -- }
      
          -- The following code creates the JSON request body.
          DECLARE @json int
          EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT
      
          EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'requests[0].image.source.imageUri', 'gs://visionapi-demo/ali.jpg'
          EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'requests[0].features[0].maxResults', 10
          EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'requests[0].features[0].type', 'WEB_DETECTION'
      
          EXEC sp_OASetProperty @json, 'EmitCompact', 0
          EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT
          PRINT @sTmp0
      
          DECLARE @resp int
          EXEC @hr = sp_OACreate 'Chilkat.HttpResponse', @resp OUT
      
          EXEC sp_OAMethod @http, 'HttpJson', @success OUT, 'POST', 'https://vision.googleapis.com/v1/images:annotate?key=your-api-key-here', @json, 'application/json', @resp
          IF @success = 0
            BEGIN
              EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
              PRINT @sTmp0
              EXEC @hr = sp_OADestroy @http
              EXEC @hr = sp_OADestroy @json
              EXEC @hr = sp_OADestroy @resp
              RETURN
            END
      
          DECLARE @jResp int
          EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jResp OUT
      
          EXEC sp_OAMethod @resp, 'GetBodyJson', @success OUT, @jResp
          EXEC sp_OASetProperty @jResp, 'EmitCompact', 0
      
      
          PRINT 'Response Body:'
          EXEC sp_OAMethod @jResp, 'Emit', @sTmp0 OUT
          PRINT @sTmp0
      
          DECLARE @respStatusCode int
          EXEC sp_OAGetProperty @resp, 'StatusCode', @respStatusCode OUT
      
          PRINT 'Response Status Code = ' + @respStatusCode
          IF @respStatusCode >= 400
            BEGIN
      
              PRINT 'Response Header:'
              EXEC sp_OAGetProperty @resp, 'Header', @sTmp0 OUT
              PRINT @sTmp0
      
              PRINT 'Failed.'
              EXEC @hr = sp_OADestroy @http
              EXEC @hr = sp_OADestroy @json
              EXEC @hr = sp_OADestroy @resp
              EXEC @hr = sp_OADestroy @jResp
              RETURN
            END
      
          EXEC @hr = sp_OADestroy @http
          EXEC @hr = sp_OADestroy @json
          EXEC @hr = sp_OADestroy @resp
          EXEC @hr = sp_OADestroy @jResp
      
      
      END
      GO