当前位置: 首页 > news >正文

工业图纸标注处理工具:从大图裁切到标注映射的完整实践

工业图纸标注处理工具:从大图裁切到标注映射的完整实践

前言

在工业图纸(如 P&ID 管道仪表流程图)的 AI 标注场景中,我们经常面临一个实际问题:原始图纸尺寸巨大(动辄 4000×3000 甚至更大),直接送入模型训练不现实,需要将大图裁切成统一尺寸的小图。但裁切后,大图上的标注坐标如何映射到小图上?本文介绍一个基于 Python + PIL 的完整解决方案。

项目概述

本项目实现了三个核心功能:

功能说明
图片对比度增强调整图片对比度,改善视觉效果
重叠滑动窗口裁切将大图按 640×640 裁切,相邻窗口 20% 重叠
标注可视化与映射读取 LabelMe 格式 JSON,在大图上绘制标注,裁切时自动映射坐标到小图

技术栈

  • Python 3.x
  • Pillow (PIL):图片读写与绘制
  • NumPy:数组操作与 padding
  • FastAPI + Uvicorn:Web 服务框架(预留)
fastapi uvicorn pillow

功能一:图片对比度增强

最简单的功能,使用 PIL 的ImageEnhance.Contrast调整对比度:

fromPILimportImage,ImageEnhancedefenhance_contrast(input_path:str,output_path:str,factor:float=1.5):img=Image.open(input_path)enhancer=ImageEnhance.Contrast(img)enhanced=enhancer.enhance(factor)enhanced.save(output_path)
  • factor > 1:增强对比度
  • factor < 1:减弱对比度
  • factor = 1:原图

功能二:重叠滑动窗口裁切

2.1 需求分析

将大图裁切为 640×640 的小图,且相邻裁切窗口之间有20% 的重叠。这样做的目的是避免标注目标恰好落在裁切边界上被截断。

2.2 核心参数

裁切窗口:640 × 640 重叠比例:20% 重叠像素:640 × 0.2 = 128px 滑动步长:640 - 128 = 512px

2.3 贴边对齐策略

窗口从(0, 0)开始,以 512px 步长滑动。为了让最后一个窗口恰好对齐图片右下边缘,在底部和右侧做 padding(填充黑色),顶部和左侧不 pad

以 1920×1080 的图为例: x=0 x=512 x=1024 x=1536 │ │ │ │ ▼ 窗口0 ▼ 窗口1 ▼ 窗口2 ▼ 窗口3(含右侧padding 256px) ┌──────┬─┐┌──────┬─┐┌──────┬─┐┌──────┐ │ │ ││ │ ││ │ ││ pad │ │ 640 │ ││ 640 │ ││ 640 │ ││ 640 │ │ │ ││ │ ││ │ ││ │ └──────┴─┘└──────┴─┘└──────┴─┘└──────┘ 128px重叠 128px重叠 128px重叠 水平 4 列 × 垂直 2 行 = 8 张切图

2.4 边界情况处理

当图片某个方向尺寸小于 640 时,从该方向边缘向外补齐到 640:

图片尺寸处理方式切图数
1920×1080正常裁切4×2 = 8
500×1080宽度补到 640,垂直正常1×2 = 2
1920×400高度补到 640,水平正常4×1 = 4
300×200两方向都不足,都补到 6401×1 = 1

2.5 核心代码

defcrop_with_overlap_v2(input_path,output_dir,crop_size=640,overlap_ratio=0.2):img=Image.open(input_path)arr=np.array(img)h,w=arr.shape[:2]step=int(crop_size*(1-overlap_ratio))# 512# 计算 padding,保证最后一个窗口对齐右下边缘pad_bottom=(crop_size-h)%step pad_right=(crop_size-w)%stepifpad_bottom<0:pad_bottom+=stepifpad_right<0:pad_right+=step extra_bottom=max(0,crop_size-h-pad_bottom)extra_right=max(0,crop_size-w-pad_right
http://www.gsyq.cn/news/1455288.html

相关文章:

  • 从零基础到稳步推进:中药报班服务真实记录 - 医考机构品牌测评专家
  • 从零到专家!AI大模型学习全攻略,手把手带你入门深度学习与大模型应用
  • YOLOv12零基础入门实战:从原理解析到训练推理全流程(保姆级教程)
  • 河北雷诺护垫厂家实力排行:合规与产能双维度评测 - 奔跑123
  • 美国大件商品海外仓选型合规靠谱服务商推荐 - 资讯快报
  • OpenVoiceV2终极指南:5步实现免费开源语音克隆与多语言TTS
  • 2026西昌防水补漏、水管漏水检测公司推荐Top2:深耕本地多年,口碑广受认可 - 资讯快报
  • 无心磨床源头生产厂家选购指南:核心评估标准与避坑建议 - 资讯快报
  • 2026苏州瓷砖空鼓维修正规厂家推荐|墙砖地砖微创修复避坑攻略 - 苏易修缮
  • 2026超声波冷热量表十大品牌权威推荐:技术参数项目案例全场景选型指南 - 仪表品牌榜
  • Arduino简易点唱机:从硬件搭建、代码编写到外壳制作的完整实践
  • 从零DIY电动滑板:电机电调选型、18650电池组构建与VESC调校全指南
  • 数控龙门加工中心定制厂家哪家好?2026优质龙门平面磨床厂家推荐|龙门导轨磨床厂家推荐:永锠智能领衔 - 栗子测评
  • Mousecape技术解析:macOS光标主题定制创新实践
  • 5分钟免费解锁30+文档平台:kill-doc浏览器脚本终极使用指南
  • 3分钟掌握GitHub文件精准下载:告别克隆整个仓库的烦恼
  • 新BLINK应用:实时交互创意工具的技术栈与实战指南
  • 3步掌握GIMP Resynthesizer:如何让图像编辑变得智能高效?
  • 如何深度掌控AMD Ryzen处理器:5步掌握免费开源调试工具
  • 3PEAK思瑞浦 TP1562AL1-VS1R-S MSOP8 运算放大器
  • 电容引脚焊点推拉力测试机生产企业实力排行:严选 - 品牌推广大师
  • 如何在Windows上免费创建高性能虚拟显示器:终极多屏解决方案指南
  • 论企业信息化规划的实施与应用
  • GW、G60、鸿雁、香港星链:一文搞懂中国四大低轨卫星计划的区别与各自“杀手锏”
  • 抖音下载效率革命:douyin-downloader 全场景解决方案实战指南
  • OpenVoiceV2技术深度解析与多语言语音克隆实战指南
  • “Java” 数组的定义与使用(二)
  • 仅限内部技术团队流通:某千万级DAU App的AI抽奖风控白皮书(含实时异常中奖行为识别规则集v3.2)
  • 2026年苏州注册公司口碑推荐,哪家更靠谱? - 招财兔数字员工
  • 2026菜刀柄成型机选型指南:商家推荐+3个用户案例帮你避坑 - 品牌优选官