You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用循环实现Python调用Google Cloud Vision批量分析文件夹图片

解决方案

以下是实现批量处理文件夹图片并保存结果到CSV的完整代码:

import os
import io
import pandas as pd
from google.cloud import vision

# 初始化Vision API客户端
client = vision.ImageAnnotatorClient()

# 定义单张图片检测函数
def process_image(image_path, file_name):
    with io.open(image_path, 'rb') as image_file:
        content = image_file.read()
    
    image = vision.Image(content=content)
    response = client.label_detection(image=image, max_results=100)
    labels = response.label_annotations
    
    # 收集当前图片的标签结果
    results = []
    for label in labels:
        results.append({
            '图片名': file_name,
            '描述': label.description,
            '分数': label.score,
            'topicality': label.topicality
        })
    return results

# 替换为你的目标文件夹路径
target_folder = r'.\save_img'

# 存储所有图片的检测结果
all_results = []

# 遍历文件夹内的图片文件
for file_name in os.listdir(target_folder):
    # 过滤常见图片格式,可按需添加其他格式
    if file_name.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp')):
        image_path = os.path.join(target_folder, file_name)
        image_results = process_image(image_path, file_name)
        all_results.extend(image_results)

# 转换为DataFrame并保存到CSV
df = pd.DataFrame(all_results)
df.to_csv('图片标签检测结果.csv', index=False, encoding='utf-8-sig')

print(f"处理完成,共生成{len(all_results)}条标签记录,已保存至图片标签检测结果.csv")

关键说明

  • 函数封装:将单图检测逻辑封装成process_image函数,让循环代码更简洁,也方便后续修改单图处理逻辑。
  • 文件夹遍历:通过os.listdir获取文件夹内所有文件,用后缀名过滤非图片文件,避免无效处理。
  • 路径处理:用os.path.join拼接路径,避免手动拼接时的转义错误和跨平台兼容性问题。
  • 结果收集:用列表统一收集所有结果后再转成DataFrame,比原代码中逐次df.append效率更高(df.append已被pandas弃用)。
  • CSV编码:指定encoding='utf-8-sig'可避免中文内容乱码。

内容的提问来源于stack exchange,提问作者Sunghee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:25:17