利用Python实现给图像添加标签
作者:幸福清风
这篇文章主要为大家详细介绍了如何利用Python实现给指定的图片添加标签,文中的示例代码讲解详细,具有一定的学习价值,需要的可以参考一下
一、需求
给指定的图片添加标签
二、代码
# !/usr/bin/env python # coding: utf-8 import tkinter as tk from tkinter import filedialog, messagebox import os import json from google.protobuf.json_format import MessageToJson from clarifai_grpc.channel.clarifai_channel import ClarifaiChannel from clarifai_grpc.grpc.api import resources_pb2, service_pb2, service_pb2_grpc from clarifai_grpc.grpc.api.status import status_code_pb2 # 授权密钥 API_KEY = '5************************************' USER_ID = '3*********h' APP_ID = 'my***************' # 注册网址:https://www.clarifai.com/ # 网址注册后,拿授权密钥,每月1000次免费 def analyze_image(image_path): # 使用 Clarifai API 进行图像分析 results = [] channel = ClarifaiChannel.get_grpc_channel() stub = service_pb2_grpc.V2Stub(channel) metadata = (('authorization', 'Key ' + API_KEY),) userDataObject = resources_pb2.UserAppIDSet(user_id=USER_ID, app_id=APP_ID) with open(image_path, 'rb') as f: file_bytes = f.read() try: print(f"开始分析图像: {image_path}") # 添加调试语句 post_model_outputs_response = stub.PostModelOutputs( service_pb2.PostModelOutputsRequest( user_app_id=userDataObject, model_id='general-image-recognition', inputs=[ resources_pb2.Input( data=resources_pb2.Data( image=resources_pb2.Image( base64=file_bytes ) ) ) ] ), metadata=metadata ) print(f"图像分析完成: {image_path}") # 添加调试语句 except Exception as e: messagebox.showerror("错误", "图像分析失败,原因: " + str(e)) return if post_model_outputs_response.status.code != status_code_pb2.SUCCESS: messagebox.showerror("错误", "模型输出提交失败,状态: " + post_model_outputs_response.status.description) return # 将获取到的结果转为 JSON json_result = MessageToJson(post_model_outputs_response) json_output = json.loads(json_result) print(json_output) # 从 JSON 结果中提取并显示关键信息 for output in json_output["outputs"]: for concept in output['data']['concepts']: object_name = concept['name'] results.append(object_name) return results if __name__ == '__main__': image_path = r"D:\Desktop\tp.png" ret = analyze_image(image_path)
三、图片
四、结果
['interior design', 'luxury', 'contemporary', 'indoors', 'furniture', 'comfort', 'family', 'room', 'hotel', 'sofa', 'no person', 'minimalist', 'rug', 'chair', 'seat', 'lamp', 'coffee table', 'curtain', 'trading floor', 'mansion']
到此这篇关于利用Python实现给图像添加标签的文章就介绍到这了,更多相关Python图像添加标签内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!