本文介绍了如何使用Python SDK,对指定的图片进行相似图检索的示例代码。
功能描述
相似图检索帮助您从图库中检索出与给定的图片相似的若干张图片。关于参数的详细说明,请参见相似图检索API文档。
您需要使用内容安全的API接入地址,调用本SDK接口。关于API接入地址的信息,请参见接入地址(Endpoint)。
前提条件
安装Python依赖。关于安装Python依赖的具体操作,请参见安装Python依赖。
说明请一定按照安装Python依赖页面中的版本安装,否则会导致调用失败。
下载并在项目工程中引入Extension.Uploader工具类。
传入URL示例代码
# coding=utf-8
# 以下示例以 Python 3.x 为例,Python 2.x 类似
# 以下代码用于调用图片同步检测接口并实时返回检测结果。
from aliyunsdkcore import client
from aliyunsdkgreen.request.v20180509 import ImageSyncScanRequest
import json
import uuid
# 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
# 常见获取环境变量方式:
# 获取RAM用户AccessKey ID:os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
# 获取RAM用户AccessKey Secret:os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
clt = client.AcsClient("建议从环境变量中获取RAM用户AccessKey ID", "建议从环境变量中获取RAM用户AccessKey Secret", "cn-shanghai")
# 每次请求时需要新建Request,请勿复用Request对象。
request = ImageSyncScanRequest.ImageSyncScanRequest()
request.set_accept_format('JSON')
task = {
"dataId": str(uuid.uuid1()),
"url": "https://example.com/tfs/xxx-600-600.jpg"
}
# similarity表示进行相似图检索。
request.set_content(json.dumps({"tasks": [task], "scenes": ["similarity"]}))
response = clt.do_action_with_exception(request)
print(response)
传入本地文件示例代码
# coding=utf-8
# 以下示例以 Python 3.x 为例,Python 2.x 类似
# 以下代码用于调用图片同步检测接口并实时返回检测结果。
from aliyunsdkcore import client
from aliyunsdkgreen.request.v20180509 import ImageSyncScanRequest
from aliyunsdkgreenextension.request.extension import ClientUploader
import json
import uuid
# 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
# 常见获取环境变量方式:
# 获取RAM用户AccessKey ID:os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
# 获取RAM用户AccessKey Secret:os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
clt = client.AcsClient("建议从环境变量中获取RAM用户AccessKey ID", "建议从环境变量中获取RAM用户AccessKey Secret", "cn-shanghai")
# 每次请求时需要新建Request,请勿复用Request对象。
request = ImageSyncScanRequest.ImageSyncScanRequest()
request.set_accept_format('JSON')
clientUploader = ClientUploader.getImageClientUploader(clt)
url = clientUploader.uploadFile("/Users/Documents/tmp.jpg")
task = {
"dataId": str(uuid.uuid1()),
"url": url
}
# similarity表示进行相似图检索。
request.set_content(json.dumps({"tasks": [task], "scenes": ["similarity"]}))
response = clt.do_action_with_exception(request)
print(response)
文档内容是否对您有帮助?