本文介绍了如何使用Go SDK,对指定的图片进行相似图检索。

功能描述

相似图检索帮助您从图库中检索出与给定的图片相似的若干张图片。关于参数的详细说明,请参见相似图检索API文档

您需要使用内容安全的API接入地址,调用本SDK接口。关于API接入地址的信息,请参见接入地址(Endpoint)

前提条件

已安装Go依赖。关于安装Go依赖的具体操作,请参见安装Go依赖
说明 请一定按照安装Go依赖页面中的版本安装,否则会导致调用失败。

提交相似图检索任务

package main

import (
   "encoding/json"
   "fmt"
   "github.com/aliyun/alibaba-cloud-sdk-go/services/green"
   "strconv"
)

func main() {
   // 请替换成您的AccessKey ID、AccessKey Secret。
   client, err := green.NewClientWithAccessKey("cn-shanghai", "您的AccessKey ID", "您的AccessKey Secret")
   if err != nil {
      fmt.Println(err.Error())
      return
   }

   task1 := map[string]interface{}{
      "dataId":              "检测数据ID",
      "url":                 "待检测图片链接",
      "similarityLibraries": [...]string{"相似图样本图库名称"},
   }

   /**
    * 设置要检测的场景,计费是按照该处传递的场景进行。
    * similarity: similarity表示进行相似图检索。
    */
   content, _ := json.Marshal(
      map[string]interface{}{
         "tasks": task1, "scenes": [...]string{"similarity"},
      },
   )

   request := green.CreateImageSyncScanRequest()
   request.SetContent(content)
   response, _err := client.ImageSyncScan(request)
   if _err != nil {
      fmt.Println(_err.Error())
      return
   }
   if response.GetHttpStatus() != 200 {
      fmt.Println("response not success. status:" + strconv.Itoa(response.GetHttpStatus()))
   }
   fmt.Println(response.GetHttpContentString())
}