在软件开发、数据处理、深度学习数据集准备等日常工作中,经常需要对大量文件进行批量整理与格式统一。例如:将分散在多个子文件夹中的图像文件按序号拷贝并重命名;为缺失的标注文件批量补全空 txt;统一修改 txt 文件中每行的首个数值;根据关键词筛选图片;根据 txt 文件名同步匹配图像;为图像批量生成同名空 txt;以及交换子文件夹中的文件名等。这些操作若依靠人工手动完成,不仅枯燥重复、效率低下,还极易因疏忽导致文件遗漏或命名错误。因此,开发一套轻量级的桌面文件批处理工具,能显著提升日常开发与数据整理效率,降低人为出错风险。
本项目是一个基于 WinForms 的桌面文件批处理工具,主要包含以下功能模块:
图像拷贝与重命名模块:扫描源目录下各子文件夹中的指定文件(如 tile.jpg),按顺序拷贝到目标目录并重命名为序号文件,支持覆盖/跳过策略、进度显示与任务取消。
标注文件补全模块:检测指定数字范围内缺失的 txt 文件,并批量创建空文件,补全数据集标注结构。
txt 首值修改模块:按空格、逗号或 Tab 分隔符,批量将 txt 文件中每行第一个数值修改为 0,统一标签格式。
关键词筛选拷贝模块:根据用户输入的关键词,筛选文件名中包含该词的图片,并批量拷贝到指定目录。
图像与 txt 同步模块:根据 txt 文件名,在图像源文件夹中查找同名图像并拷贝到 txt 所在目录,实现标注与图像的一一对应。
同名 txt 生成模块:为指定文件夹内的所有图像批量生成同名空 txt 文件,便于后续标注。
文件名交换模块:批量交换子文件夹中指定图像的文件名(如 2.jpg 与 3.jpg),并支持基于 HALCON 的多相机图像拼接处理。
本项目基于 .NET WinForms 开发,采用 C# 语言实现,图像拼接部分依赖 HALCON 算子库。
我负责的具体任务:
负责图像拷贝与重命名模块(btnCopy_Click),实现异步拷贝、进度条更新与取消操作,并处理目标文件重名跳过逻辑。
负责标注文件补全与修改模块(btnFillMissing_Click、btnStartModify_Click),实现缺失 txt 检测、空文件创建,以及按分隔符批量修改首值。
负责关键词筛选与图像同步模块(btnStartFilter_Click、btnStartSync_Click),实现基于文件名匹配的图像筛选与同步拷贝。
负责同名 txt 生成模块(btnStartGenTxt_Click),遍历图像文件并批量创建同名空 txt。
负责文件名交换与图像拼接模块(SwapFileNames、TileImage),通过临时文件中转实现安全交换,并封装 HALCON TileImagesOffset 算子实现 4 相机带偏移拼接。
技术栈与难点:
使用 WinForms 构建界面,C# 编写业务逻辑,HALCON 实现图像拼接。难点在于 HALCON 拼接偏移量与画布尺寸的精确计算,以及异步任务中 UI 线程与后台线程的协调。通过 async/await 与 Task.Delay 保证界面不卡顿,使用 List 缓存文件列表避免重复扫描,提升批量处理效率。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论