利用Python实现给图像添加标签

 更新时间:2023年07月16日 11:14:01   作者:幸福清风  
这篇文章主要为大家详细介绍了如何利用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图像添加标签内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 用Python编写一个简单的Lisp解释器的教程

    用Python编写一个简单的Lisp解释器的教程

    这篇文章主要介绍了用Python编写一个简单的Lisp解释器的教程,Lisp是一种源码简单的函数式编程语言,本文主要介绍对其中的一个子集Scheme的解释器开发,需要的朋友可以参考下
    2015-04-04
  • python六种基本数据类型及常用函数展示

    python六种基本数据类型及常用函数展示

    这篇文章主要为大家介绍了python六种基本数据类型及常用函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • Pyqt实现简易计算器功能

    Pyqt实现简易计算器功能

    这篇文章主要为大家详细介绍了Pyqt实现简易计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • python+selenium实现自动化百度搜索关键词

    python+selenium实现自动化百度搜索关键词

    在本篇文章里我们给大家分享了一篇关于python+selenium实现自动化百度搜索关键词的实例文章,需要的朋友们可以跟着操作下。
    2019-06-06
  • Python中 CSV格式清洗与转换的实例代码

    Python中 CSV格式清洗与转换的实例代码

    这篇文章主要介绍了Python123 CSV格式清洗与转换的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • OpenCV连通域数量统计学习示例

    OpenCV连通域数量统计学习示例

    这篇文章主要为大家介绍了OpenCV连通域数量统计示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Python中的命名元组简单而强大的数据结构示例详解

    Python中的命名元组简单而强大的数据结构示例详解

    namedtuple是Python中一个非常有用的数据结构,它提供了一种简单的方式创建具有固定字段的轻量级对象,通过使用namedtuple,可以提高代码的可读性和可维护性,避免了使用类定义对象的复杂性,这篇文章主要介绍了Python中的命名元组简单而强大的数据结构,需要的朋友可以参考下
    2024-05-05
  • Python实现的企业粉丝抽奖功能示例

    Python实现的企业粉丝抽奖功能示例

    这篇文章主要介绍了Python实现的企业粉丝抽奖功能,涉及Python数值运算与随机数生成相关操作技巧,需要的朋友可以参考下
    2019-07-07
  • python模拟登陆网站的示例

    python模拟登陆网站的示例

    这篇文章主要介绍了python模拟登陆网站的示例,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • 对Python中内置异常层次结构详解

    对Python中内置异常层次结构详解

    今天小编就为大家分享一篇对Python中内置异常层次结构详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10

最新评论