Sample code for 30+ languages & platforms
PowerBuilder

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 PowerBuilder Downloads

      PowerBuilder
      integer li_rc
      integer li_Success
      oleobject loo_Http
      oleobject loo_Json
      oleobject loo_Resp
      oleobject loo_JResp
      integer li_RespStatusCode
      
      li_Success = 0
      
      // This example assumes the Chilkat API to have been previously unlocked.
      // See Global Unlock Sample for sample code.
      
      loo_Http = create oleobject
      li_rc = loo_Http.ConnectToNewObject("Chilkat.Http")
      if li_rc < 0 then
          destroy loo_Http
          MessageBox("Error","Connecting to COM object failed")
          return
      end if
      
      // 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.
      loo_Json = create oleobject
      li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")
      
      loo_Json.UpdateString("requests[0].image.source.imageUri","gs://visionapi-demo/ali.jpg")
      loo_Json.UpdateInt("requests[0].features[0].maxResults",10)
      loo_Json.UpdateString("requests[0].features[0].type","WEB_DETECTION")
      
      loo_Json.EmitCompact = 0
      Write-Debug loo_Json.Emit()
      
      loo_Resp = create oleobject
      li_rc = loo_Resp.ConnectToNewObject("Chilkat.HttpResponse")
      
      li_Success = loo_Http.HttpJson("POST","https://vision.googleapis.com/v1/images:annotate?key=your-api-key-here",loo_Json,"application/json",loo_Resp)
      if li_Success = 0 then
          Write-Debug loo_Http.LastErrorText
          destroy loo_Http
          destroy loo_Json
          destroy loo_Resp
          return
      end if
      
      loo_JResp = create oleobject
      li_rc = loo_JResp.ConnectToNewObject("Chilkat.JsonObject")
      
      loo_Resp.GetBodyJson(loo_JResp)
      loo_JResp.EmitCompact = 0
      
      Write-Debug "Response Body:"
      Write-Debug loo_JResp.Emit()
      
      li_RespStatusCode = loo_Resp.StatusCode
      Write-Debug "Response Status Code = " + string(li_RespStatusCode)
      if li_RespStatusCode >= 400 then
          Write-Debug "Response Header:"
          Write-Debug loo_Resp.Header
          Write-Debug "Failed."
          destroy loo_Http
          destroy loo_Json
          destroy loo_Resp
          destroy loo_JResp
          return
      end if
      
      
      
      destroy loo_Http
      destroy loo_Json
      destroy loo_Resp
      destroy loo_JResp