当前位置: 首页 > 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.jsqmd.com/news/943821/

相关文章:

  • 混油皮亲测3款眼油,控油保湿提亮暗沉黑眼圈 - 全网最美
  • 2026年深圳GEO优化公司TOP10权威排名:技术自研与效果付费双维度评测 - 资讯快报
  • 义乌烫纸厂家哪家好?2026烫纸厂家推荐:辛合烫纸领衔|推荐质量好的烫纸厂家,甄选优质的烫纸生产厂家合集 - 栗子测评
  • CodeFormer人脸修复终极指南:10分钟让模糊老照片重现光彩
  • YOLOv12零基础入门实战:从原理解析到训练推理全流程(保姆级教程)
  • 美国大件商品海外仓选型合规靠谱服务商推荐 - 资讯快报
  • KMS_VL_ALL_AIO:终极免费激活工具,三步永久激活Windows和Office
  • 河北雷诺护垫厂家实力排行:合规与产能双维度评测 - 奔跑123
  • OpenVoiceV2终极指南:5步实现免费开源语音克隆与多语言TTS
  • 2026橡胶粉厂家绝缘橡胶板厂家推荐甄选优质橡塑制品供应商助力工业电力安全防护选型 - 栗子测评
  • 2026惠州阳台、屋面防水补漏、漏水检测、地板砖空鼓公司推荐:报价透明无隐形消费,设备专业 - 资讯快报
  • 别再被网站追踪了!手把手教你修改Chromium源码,让Audio指纹每次刷新都随机
  • AI工作流编排失效的7个致命陷阱:从Prompt断裂到RAG崩塌,一线专家紧急修复手册
  • 深圳企业团建定制服务排行 领队实力客观对比 - 互联网科技品牌测评
  • 基于ESP8266与Node-RED的智能家居安防通知系统实战
  • 无心磨床源头生产厂家选购指南:核心评估标准与避坑建议 - 资讯快报
  • 2026西昌防水补漏、水管漏水检测公司推荐Top2:深耕本地多年,口碑广受认可 - 资讯快报
  • 订单量翻倍:商用洗涤剂厂家助力洗涤厂破局 - 资讯快报
  • 5分钟快速上手:网易云音乐无损解析终极指南
  • 预约小程序制作怎么做?很多项目不是缺页面,而是缺一条顺的预约链路 - 维双云小凡
  • 3PEAK思瑞浦 TP6001-CR SOT353 运算放大器
  • 海口名表回收实测:六家正规平台横向对比,添价收手表回收三十年积淀领跑本地市场 - 薛定谔的梨花猫
  • 不止是杀毒!挖掘火绒安全那些被忽略的实用功能:从文件粉碎到启动项管理
  • 2026苏州瓷砖空鼓维修正规厂家推荐|墙砖地砖微创修复避坑攻略 - 苏易修缮
  • 终极GitHub中文汉化指南:3分钟让GitHub说中文的完整教程
  • 中药执业药师报班,如何选对服务好的机构? - 医考机构品牌测评专家
  • 2026佛山瓷砖空鼓修复公司排名TOP5深度实测|免砸砖技术优选,佛山靠谱瓷砖空鼓修复公司推荐全指南 - 防水空鼓维修家
  • 2026超声波冷热量表十大品牌权威推荐:技术参数项目案例全场景选型指南 - 仪表品牌榜
  • Arduino简易点唱机:从硬件搭建、代码编写到外壳制作的完整实践
  • 算法竞赛的“混沌”之源:90%的WA和TLE,都是因为没修好“真诚境”