建设服装网站的意义网站开发者模式

张小明 2026/3/12 23:46:04
建设服装网站的意义,网站开发者模式,南阳东莞网站建设公司,做电商需要什么条件1. 脚本功能介绍 本脚本用于批量复制LabelMe标注信息#xff0c;特别适用于以下场景#xff1a; 您有一批图片#xff0c;其中物体位置、形状、大小基本相同您已经使用LabelMe标注了第一张图片您希望将第一张图片的标注信息快速复制到其他图片中需要自动适应不同图片的尺寸信…1. 脚本功能介绍本脚本用于批量复制LabelMe标注信息特别适用于以下场景您有一批图片其中物体位置、形状、大小基本相同您已经使用LabelMe标注了第一张图片您希望将第一张图片的标注信息快速复制到其他图片中需要自动适应不同图片的尺寸信息核心功能读取源JSON标注文件自动获取目标图片的尺寸信息保留所有标注形状、标签、颜色等信息为每张目标图片生成对应的LabelMe JSON标注文件支持多种常见图片格式2. 环境依赖2.1 安装必要的Python库pipinstallopencv-python tqdm2.2 依赖库说明opencv-python: 用于读取图片获取尺寸信息tqdm: 提供进度条显示直观展示处理进度json: 处理LabelMe的JSON标注文件os: 文件路径操作argparse: 命令行参数解析当前版本已硬编码参数但保留了扩展性3. 代码结构说明3.1 主要函数copy_labelme_annotations(): 核心功能函数负责复制标注main(): 程序入口配置参数并调用核心函数3.2 当前配置您修改后的版本defmain():source_json../1765555160.jsoncopy_labelme_annotations(source_json_pathsource_json,image_dir../bbbb,output_dir../bbbb)当前配置说明源标注文件../1765555160.json图片目录../bbbb输出目录../bbbb标注文件将保存在同一目录4. 使用方法4.1 方法一直接运行推荐新手使用创建目录结构your_project/ ├── copy_annotations.py # 本脚本 ├── 1765555160.json # 您的源标注文件 └── bbbb/ # 存放所有图片的目录 ├── image1.jpg ├── image2.jpg ├── image3.jpg └── ...将脚本参数修改为您实际的路径defmain():source_json../1765555160.json# 修改为您的源JSON文件路径copy_labelme_annotations(source_json_pathsource_json,image_dir../bbbb,# 修改为您的图片目录output_dir../bbbb# 修改为输出目录)运行脚本python copy_annotations.py4.2 方法二命令行参数方式推荐高级用户如果您希望使用命令行参数可以将main()函数修改为defmain():parserargparse.ArgumentParser(description批量复制LabelMe标注)parser.add_argument(--source_json,requiredTrue,help源标注JSON文件路径)parser.add_argument(--image_dir,requiredTrue,help图片目录路径)parser.add_argument(--output_dir,defaultNone,help输出目录路径可选默认与image_dir相同)argsparser.parse_args()copy_labelme_annotations(source_json_pathargs.source_json,image_dirargs.image_dir,output_dirargs.output_dir)命令行使用示例python copy_annotations.py\--source_json../1765555160.json\--image_dir../bbbb\--output_dir../bbbb5. 参数详细说明5.1 函数参数参数名类型必需说明source_json_pathstr✓源标注JSON文件路径包含第一张图片的标注信息image_dirstr✓存放所有图片的目录路径output_dirstr✗输出目录路径如果为None则使用image_dir5.2 支持的图片格式脚本支持以下图片格式不区分大小写.jpg/.jpeg.png.bmp.tiff/.tif5.3 JSON文件结构说明生成的JSON文件包含以下关键字段version: LabelMe版本号flags: 标签标志shapes: 标注形状列表点、线、矩形、多边形等imagePath: 对应的图片文件名imageHeight: 图片高度imageWidth: 图片宽度imageData: None不包含图像数据减小文件大小6. 运行示例6.1 预期输出源标注文件: ../1765555160.json 检测到 5 个标注对象 找到 15 张图片将为 14 张图片复制标注 复制标注: 100%|██████████| 14/14 [00:0200:00, 6.21it/s] 完成! 已为 14 张图片创建标注文件6.2 生成的文件在../bbbb/目录下每张图片都会生成对应的JSON文件bbbb/ ├── image1.jpg ├── image1.json # 自动生成 ├── image2.jpg ├── image2.json # 自动生成 ├── ... └── 1765555160.jpg # 源图片不会重复生成7. 注意事项7.1 重要前提条件✅图片内容相似性所有图片中的物体位置、形状、大小应基本相同✅图片格式一致性确保图片是脚本支持的格式✅路径正确性检查所有路径是否存在特别是源JSON文件和图片目录7.2 常见问题及解决问题1无法读取图片警告: 无法读取图片 ../bbbb/image1.jpg, 跳过解决方法检查图片路径是否正确确认图片文件未损坏检查是否有权限读取该文件问题2JSON格式错误JSONDecodeError: Expecting value: line 1 column 1 (char 0)解决方法用文本编辑器打开源JSON文件检查是否是有效的JSON格式确保JSON文件是UTF-8编码重新使用LabelMe保存标注文件问题3标注位置不准确解决方法如果图片尺寸差异较大复制的标注可能位置不准确建议在LabelMe中手动调整位置或者使用图像配准算法先对齐图片7.3 性能优化大图片处理如果图片很大处理速度会变慢建议先缩小图片尺寸批量处理一次处理大量图片时确保有足够的内存文件备份运行前建议备份原始标注文件防止意外覆盖8. 高级用法8.1 自定义修改标注如果您需要在复制过程中修改标注可以在循环中添加自定义逻辑# 在复制形状标注的循环中添加forshapeinsource_data[shapes]:new_shapeshape.copy()# 示例修改所有矩形的标签ifnew_shape[shape_type]rectangle:new_shape[label]modified_new_shape[label]# 示例缩放所有坐标适应不同尺寸scale_xwidth/source_data[imageWidth]scale_yheight/source_data[imageHeight]new_points[[x*scale_x,y*scale_y]forx,yinnew_shape[points]]new_shape[points]new_points new_data[shapes].append(new_shape)8.2 与其他工具集成# 1. 先复制标注python copy_annotations.py --source_json template.json --image_dir images# 2. 然后用LabelMe验证和微调labelme images/9. 完整代码带注释版本importjsonimportosimportcv2fromtqdmimporttqdmimportargparsedefcopy_labelme_annotations(source_json_path,image_dir,output_dirNone): 将第一张图片的labelme标注信息复制到同一目录下的其他图片 参数: source_json_path: 第一张已标注图片对应的JSON文件路径 image_dir: 图片所在的目录 output_dir: 输出目录如果为None则使用image_dir 功能流程: 1. 读取源JSON文件 2. 获取所有目标图片 3. 为每张目标图片: - 读取图片获取尺寸 - 创建新的标注数据 - 复制标注形状 - 保存JSON文件 # 读取源JSON文件withopen(source_json_path,r,encodingutf-8)asf:source_datajson.load(f)print(f源标注文件:{source_json_path})print(f检测到{len(source_data[shapes])}个标注对象)# 获取源图片信息source_image_pathsource_data[imagePath]source_image_nameos.path.basename(source_image_path)# 设置输出目录ifoutput_dirisNoneoroutput_dir.strip():output_dirimage_dir# 创建输出目录如果不存在os.makedirs(output_dir,exist_okTrue)# 获取所有图片文件image_extensions[.jpg,.jpeg,.png,.bmp,.tiff,.tif]all_images[]forfinos.listdir(image_dir):extos.path.splitext(f)[1].lower()ifextinimage_extensions:all_images.append(f)# 排除源图片target_images[imgforimginall_imagesifimg!source_image_name]print(f找到{len(all_images)}张图片将为{len(target_images)}张图片复制标注)# 处理每张目标图片successful_count0forimage_nameintqdm(target_images,desc复制标注):image_pathos.path.join(image_dir,image_name)# 读取图片获取尺寸try:imgcv2.imread(image_path)ifimgisNone:print(f警告: 无法读取图片{image_path}, 跳过)continueheight,widthimg.shape[:2]# 创建新的标注数据new_data{version:source_data.get(version,5.0.1),flags:source_data.get(flags,{}),shapes:[],imagePath:image_name,imageData:None,# 不包含图像数据以减小文件大小imageHeight:height,imageWidth:width}# 复制形状标注forshapeinsource_data[shapes]:new_shapeshape.copy()# 确保shape_type字段存在ifshape_typenotinnew_shape:new_shape[shape_type]polygonnew_data[shapes].append(new_shape)# 生成输出JSON文件名output_json_nameos.path.splitext(image_name)[0].jsonoutput_json_pathos.path.join(output_dir,output_json_name)# 保存新的JSON文件withopen(output_json_path,w,encodingutf-8)asf:json.dump(new_data,f,ensure_asciiFalse,indent2)successful_count1exceptExceptionase:print(f处理图片{image_name}时出错:{str(e)})continueprint(f完成! 成功为{successful_count}/{len(target_images)}张图片创建标注文件)ifsuccessful_countlen(target_images):print(f警告: 有{len(target_images)-successful_count}张图片处理失败请检查日志)defmain(): 主函数 - 当前配置版本 使用前请根据实际情况修改以下路径 # 请在此处修改您的路径配置 source_json../1765555160.json# 源标注JSON文件路径image_dir../bbbb# 图片目录路径output_dir../bbbb# 输出目录路径可与image_dir相同# print(*50)print(LabelMe标注批量复制工具)print(*50)print(f配置信息:)print(f 源标注文件:{source_json})print(f 图片目录:{image_dir})print(f 输出目录:{output_dir})print(-*50)# 检查文件和目录是否存在ifnotos.path.exists(source_json):print(f错误: 源标注文件不存在 -{source_json})returnifnotos.path.exists(image_dir):print(f错误: 图片目录不存在 -{image_dir})returncopy_labelme_annotations(source_json_pathsource_json,image_dirimage_dir,output_diroutput_dir)if__name____main__:main()10. 总结这个脚本能够大幅提升标注效率特别适用于工业检测中的相似产品图片监控视频中的连续帧产品展示的多角度照片任何具有重复模式的图像数据集使用流程总结标注第一张图片使用LabelMe配置脚本参数修改路径运行脚本批量生成标注使用LabelMe验证和微调标注导出为所需格式COCO、YOLO等通过这个工具您可以将原本需要几小时的标注工作缩短到几分钟大大提高数据准备效率
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

个人站长怎么样做网站才不会很累wordpress壁纸

第 1 章 引言1.1 设计背景与意《通信电子线路》课程中,信号发生器是实验教学与电路测试的核心设备。传统信号发生器功能单一,仅支持基础波形的频率、幅值调节,无法满足 “失真测试、定制化波形输出” 等实验需求。本设计基于 741 运算放大器&…

张小明 2026/3/5 4:15:33 网站建设

四川建设银行官网招聘网站网页制作软件排行榜

Excalidraw网格与参考线设置:提升对齐精度 在绘制一张技术架构图时,你是否曾为组件错位、间距不均而反复调整?又或者在团队协作中,因他人绘图风格随意导致整体布局混乱而头疼?这类问题在使用手绘风格白板工具如 Excali…

张小明 2026/3/5 4:15:35 网站建设

苏州网站建站推广毫州网站建设

还在为WinForm应用界面陈旧而烦恼吗?想给你的桌面应用换上现代化的外衣吗?今天我要介绍的这个WinForm UI库——AntdUI,将彻底改变你对传统WinForm的认知。作为基于Ant Design设计语言的纯GDI绘图界面库,它为开发者提供了一整套专业…

张小明 2026/3/5 4:15:36 网站建设

js怎么做网站环球影城可以怎么付款

基于Kotaemon的政策法规智能查询平台 在政务服务场景中,一个企业主打开政务App,输入“我现在能申请多少创业补贴?”系统没有直接抛出模糊答案,而是反问:“您是小微企业还是个体工商户?注册地在哪个城市&…

张小明 2026/3/5 4:15:37 网站建设

阿克苏网站设计提供徐州网站建设

还在为选择合适的大模型而烦恼吗?🤔 Google最新发布的Gemma-3系列开源大模型或许正是你需要的解决方案。作为Google第三代开源大模型的代表,Gemma-3不仅继承了前代产品的优秀基因,更在多模态处理和部署效率上实现了质的飞跃。无论…

张小明 2026/3/5 4:15:37 网站建设

怎么查询网站的备案号网页设计师培训无锡

ok-ww鸣潮自动化助手:智能解放双手的5步实战指南 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 厌倦了重复刷…

张小明 2026/3/5 4:15:41 网站建设