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

如何基于目录动态生成WebODM所需的Python图像数据结构?

解决方案

你可以用Python标准库直接实现,不需要额外第三方解析器,核心思路是遍历目标目录、筛选图像文件、按要求构造元组结构。

方法1:手动映射MIME类型

import os

def generate_webodm_images(image_dir):
    images_list = []
    # 定义需要处理的图像格式扩展名
    valid_extensions = (".jpg", ".jpeg", ".png", ".tif", ".tiff")
    
    for filename in os.listdir(image_dir):
        # 只处理指定格式的文件
        if filename.lower().endswith(valid_extensions):
            file_full_path = os.path.join(image_dir, filename)
            # 根据扩展名匹配MIME类型
            ext = os.path.splitext(filename)[1].lower()
            mime_map = {
                ".jpg": "image/jpeg",
                ".jpeg": "image/jpeg",
                ".png": "image/png",
                ".tif": "image/tiff",
                ".tiff": "image/tiff"
            }
            mime_type = mime_map.get(ext, "image/jpeg")
            
            # 构造WebODM要求的元组结构并添加到列表
            images_list.append(("images", (filename, open(file_full_path, "rb"), mime_type)))
    
    return images_list

方法2:自动识别MIME类型(更灵活)

用mimetypes库自动判断文件的MIME类型,适配更多格式:

import os
import mimetypes

def generate_webodm_images(image_dir):
    images_list = []
    valid_extensions = (".jpg", ".jpeg", ".png", ".tif", ".tiff")
    
    for filename in os.listdir(image_dir):
        if filename.lower().endswith(valid_extensions):
            file_full_path = os.path.join(image_dir, filename)
            # 自动获取MIME类型,无法识别时用默认值
            mime_type, _ = mimetypes.guess_type(file_full_path)
            mime_type = mime_type or "image/jpeg"
            
            images_list.append(("images", (filename, open(file_full_path, "rb"), mime_type)))
    
    return images_list

使用方式

调用函数传入你的图像目录路径即可:

# 替换为你的图像目录绝对/相对路径
images = generate_webodm_images("/path/to/your/drone/images")

注意事项

  • 如果你使用requests库发送WebODM API请求,请求完成后requests会自动关闭这些打开的文件句柄,无需手动处理;如果是其他场景,记得在使用完后遍历列表关闭文件。
  • 可以根据实际需求调整valid_extensions里的格式,适配你的无人机拍摄的图像类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 05:57:58