Commit Graph

1091 Commits

Author SHA1 Message Date
LI Wei.lw b22e99ce9a 已合并 PR 238: 图像处理算子参数拆分出常用和高级参数
1. Bug 修复 — OpenCV 类型限制
双边滤波:OpenCV BilateralFilter 不支持 CV_16U,16 位图像改为先转 32F 再执行滤波后转回
中值滤波 / 去离群点:OpenCV MedianBlur 不支持 CV_16U,16 位图像转 32F 处理;KernelSize 最大值限制为 5(CV_32F 仅支持 kernel 3 和 5)
2. 高级参数折叠面板
ProcessorParameter 新增 IsAdvanced 属性,标记非核心参数
UI 层新增"高级参数" Expander(默认折叠),仅在有高级参数时显示
约 42 个参数标记为高级,用户日常操作只需关注核心参数
修复 Expander 内 FontWeight 继承导致的字体样式不一致
3. 默认值优化(适配平面 CT DR 图像)
锐化方法:Laplacian → UnsharpMask(对噪声更温和)
直方图均衡化:Global → CLAHE(局部对比度更优)
对比度调整:AutoContrast 默认开启,其余参数移入高级
算子方法下拉框统一移入高级参数
FilmEffect 窗宽窗位默认值按 16 位配置(32768 / 65535)
4. 代码质量修复
资源泄漏:HighPass/LowPass 滤波器 Image 对象改用 using + Clone();BandPassFilter 补充 floatImage 和 mask 的释放
线程安全:GammaProcessor LUT 从实例字段改为方法局部变量,消除并发竞态
边界情况:Otsu16 阈值初始值改为 maxVal/2,防止全黑/全白图返回 0
异常安全:RemoveOutliers 的 medianImage 用 try-finally 保证释放
空引用防护:SuperResolution InputMetadata 添加空检查
目录整理:移除"其他"分类,FilmEffect → 图像增强,PseudoColor → 图像变换
2026-08-17 11:00:09 +08:00
wei.lw.li bbb3bf5326 fix: 修复算子代码审查发现的关键问题
1. 资源泄漏:HighPass/LowPass滤波器Image对象未dispose(改用using+Clone)
2. 线程安全:GammaProcessor LUT从实例字段改为方法局部变量
3. 资源泄漏:BandPassFilter补充floatImage和mask的Dispose
4. 边界情况:ThresholdProcessor Otsu16初始阈值改为中值(防全黑/全白)
5. 异常安全:RemoveOutliers的medianImage用try-finally保证释放
6. 空引用:SuperResolution InputMetadata空检查
2026-08-17 09:40:31 +08:00
ZHANG Zhengxuan 590931b47a 已合并 PR 235: 累计功能更新
1. CNC 人工复核标记系统
完善 CNC 人工复核标记归档流程,仅人工审核确认的标记进入导航标记层
CNC 检测结果不再自动生成导航 OK/NG 标记,避免未经人工审核的位置被自动渲染
overview.bmp 使用已确认标记截图,overview_raw.bmp 保留无标记原图
增加标记右键菜单(编辑属性、显示关联图像、删除、恢复位置)
增加 CNC 复核标记追踪日志
2. CNC 执行与导航
增加按当前状态更新 CNC 位置节点功能
增加 CNC 节点局部执行右键菜单
支持从右键菜单禁用 CNC 节点
修复 CNC manifest 节点名称(新增 PositionName 字段)
统一 CNC 结果输出目录
修复 CNC 节点实时预览叠加图、节点恢复与叠加层渲染
CNC 运行前后清除运动层缓存偏移量
修复 CNC 模板对齐使用 XY 运动
增加 CNC 复核接受/跳过/中止操作
3. 检测标注与叠加显示
BGA 球检测 / 空洞率检测 / 空隙检测:编号与汇总文字自适应
色阶图例文字和行距自适应
优化 BGA 球检测叠加标签显示
修复 BGA 轮廓叠加与灰度图显示
探测器标记像素坐标 → 导航图像像素映射(通过导航相机标定矩阵)
4. 国际化(i18n)
本地化核心视图、启动屏、检测面板、设置标签页
本地化主状态栏、调试 Ribbon、主 Ribbon 命令
支持即时生效的语言切换
5. 其他功能
拆分射线源电流与功率状态字段
取消射线源和探测器按钮点击高亮
使用外部运行时配置文件
修复安装器默认安装目录
升级版本号至 1.0.1
新增 CNC 检测报告模板 CncInspectionReportTemplate.json
参数输入验证(ProcessorParameterInputValidation)
创建 CNC 前提示保存
2026-08-14 11:25:43 +08:00
zhengxuan.zhang b2be0724d2 修复CNC标记运行归属 2026-08-14 09:54:31 +08:00
zhengxuan.zhang 5a6c10d222 增加CNC复核标记追踪日志 2026-08-14 09:45:43 +08:00
zhengxuan.zhang 1d26cc279b 修复CNC复核标记归档 2026-08-14 09:41:36 +08:00
zhengxuan.zhang d64449ce74 完善CNC人工复核标记归档 2026-08-14 09:31:37 +08:00
zhengxuan.zhang 00ce186bb1 优化CNC执行结果文件夹命名 2026-08-14 09:13:08 +08:00
zhengxuan.zhang b565205fe0 取消射线源和探测器按钮点击高亮 2026-08-13 11:07:58 +08:00
zhengxuan.zhang 5c26740869 更新记录 2026-08-13 09:00:00 +08:00
zhengxuan.zhang b7ac0cc53c 修复安装器默认安装目录 2026-08-12 18:07:22 +08:00
zhengxuan.zhang f079885de9 优化BGA球检测叠加标签显示 2026-08-12 11:39:11 +08:00
zhengxuan.zhang f1b6c6dc9e 1.0.1版本 2026-08-12 11:25:24 +08:00
zhengxuan.zhang 0bef9ece19 BGA 空洞率检测:编号、汇总文字自适应
空隙检测:空隙编号、汇总文字自适应
BGA 球检测:编号、汇总文字自适应
色阶图例:文字和行距自适应
QFN 检测:继续使用自适应逻辑
2026-08-12 11:14:53 +08:00
zhengxuan.zhang 30b8bffd65 修复CNC节点实时预览叠加图 2026-08-12 11:02:37 +08:00
zhengxuan.zhang 85169cbaff 修复标记属性图像匹配和显示 2026-08-12 10:57:01 +08:00
zhengxuan.zhang ab5c606cd5 修复标记属性图像和状态单位显示 2026-08-12 10:13:06 +08:00
zhengxuan.zhang af77af4aab CNC 标记右键显示 Mark 菜单
人工标记右键显示 Mark 菜单
统一提供编辑属性、显示关联图像、删除、恢复位置等菜单
继续屏蔽底层 RoiCanvas 的缩放/保存菜单,避免两个菜单同时出现
2026-08-12 09:56:53 +08:00
wei.lw.li 3ffcb2452a refactor: 移除'其他'分类,算子按功能归类
- FilmEffectProcessor → 图像增强(窗宽窗位本质是增强/显示调整)
- PseudoColorProcessor → 图像变换(伪色彩映射是可视化变换)
- 删除空的'其他'文件夹
2026-08-12 09:32:32 +08:00
wei.lw.li 7768c086ea feat: 图像增强/变换算子标记高级参数+默认值优化
高级参数标记:Contrast(Contrast,Brightness,UseCLAHE,ClipLimit)、
Gamma(Gain)、Sharpen(Method,KernelSize)、Emboss(BlendRatio,GrayOffset)、
HistogramEq(Method,TileSize)、HDR(Method,Saturation,SigmaSpace,SigmaColor,Bias)、
Hierarchical(BaseGain,ClipLimit)、Retinex(Method,Sigma1/2/3,Offset)、
Rotate(ExpandCanvas,BackgroundValue,Interpolation)

默认值优化(适配平面CT DR图像):
- Sharpen: Laplacian→UnsharpMask(对噪声更温和)
- HistogramEq: Global→CLAHE(局部对比度更优)
- Contrast: AutoContrast默认开启
2026-08-12 09:25:34 +08:00
wei.lw.li d5d964d115 feat: 滤波/边缘检测算子标记高级参数
滤波类:GaussianBlur(Sigma)、Bilateral(SigmaSpace)、
BandPass(FilterType,Order)、ShockFilter(Dt)
边缘检测:Sobel(Direction,KernelSize,Scale)、
HorizontalEdge(Method,Sensitivity)、Kirsch(Scale)
2026-08-12 09:25:08 +08:00
wei.lw.li 3677bb85a4 feat: 新增高级参数折叠面板(IsAdvanced)框架支持
- ProcessorParameter新增IsAdvanced属性
- ProcessorParameterVM导出IsAdvanced供XAML绑定
- PipelineNodeViewModel新增HasAdvancedParameters
- PipelineEditorView增加'高级参数'Expander(默认折叠)
- 修复Expander内FontWeight继承导致的字体样式不一致
2026-08-12 09:24:36 +08:00
zhengxuan.zhang df3ecbf9fe 修复CNC节点预览标记恢复 2026-08-11 18:04:29 +08:00
zhengxuan.zhang 2fb9cf48a9 修复CNC节点浏览残留标记 2026-08-11 17:28:38 +08:00
zhengxuan.zhang d3e0509603 问题原因:
CNC 结束归档时调用 CncInspectionMarkAdapter.ApplyRun()。
该逻辑会为每个检测结果节点自动创建红/绿标记。
因此未经过人工审核的位置也被自动渲染,导致 2 个人工标记之外又多出第 3 个红色标记。
现在调整为:
只有人工审核确认的标记,才进入导航标记层。
用户手动添加的标记继续保留。
CNC 检测结果只写入结果明细,不再自动生成导航 OK/NG 标记。
overview.bmp 直接使用导航当前已确认的标记截图。
overview_raw.bmp 仍为无标记、无红线原图
2026-08-11 17:18:10 +08:00
zhengxuan.zhang 53c0df0f5c 修复CNC总览图原图与标记截图分离 2026-08-11 17:05:09 +08:00
wei.lw.li d4bd69fb1f fix: 中值滤波16位支持-转float+限制kernel最大值为5
OpenCV MedianBlur不支持CV_16U,CV_32F仅支持kernel 3和5。
修复:16位图像转32F再执行MedianBlur;KernelSize最大值限制为5。
2026-08-11 16:47:00 +08:00
wei.lw.li 561d1dd477 fix: 修复中值滤波和去离群点算子在16位图像+大核时的崩溃
OpenCV MedianBlur在kernel>5时仅支持CV_8U,不支持CV_16U。
修复方式:16位图像且kernel>5时,先转float执行MedianBlur再转回。
涉及文件:MedianFilterProcessor、RemoveOutliersProcessor。
2026-08-11 16:34:59 +08:00
zhengxuan.zhang bf574ad55b 修复CNC结束时导航合成截图归档 2026-08-11 16:34:22 +08:00
wei.lw.li bd7c8e422a fix: 修复双边滤波对16位图像执行失败的问题
OpenCV BilateralFilter仅支持8U和32F格式,16位图像(CV_16U)直接传入会抛异常。
修复方式:16位图像先转换为32F执行滤波,再转回原始位深。
2026-08-11 16:29:46 +08:00
zhengxuan.zhang 7bfd1e1085 修复CNC总览图标记渲染 2026-08-11 16:14:31 +08:00
zhengxuan.zhang e38b6bf9fc 升级版本号 2026-08-11 16:10:05 +08:00
zhengxuan.zhang 7846127afe 拆分射线源电流与功率状态字段 2026-08-11 16:05:21 +08:00
zhengxuan.zhang f9a3ae2e75 增加按当前状态更新CNC位置节点功能 2026-08-11 15:40:55 +08:00
zhengxuan.zhang 43f77abd11 fix: save marked and raw CNC overview images 2026-08-11 15:29:41 +08:00
zhengxuan.zhang 6dc0c20d0a fix: show overview image in CNC result viewer 2026-08-11 15:24:24 +08:00
zhengxuan.zhang 1e21f3c469 fix: archive navigation camera overview image 2026-08-11 15:18:49 +08:00
zhengxuan.zhang 56cae4ca80 fix: unify CNC result output directory 2026-08-11 13:57:03 +08:00
ZHANG Zhengxuan 81f1cfa0d1 已合并 PR 228: 累计功能更新
CNC 与图像处理
- 统一 CNC 图像源、模板对齐和 16 位图像处理链路,修复 TIFF 16 位数据链路
- 完善对齐失败/超限提示、模板叠加显示和多 Tile 配对
- 新增检测池插入、矩阵总运行与单元格运行联动,XPZ 导入后自动保存

任务向导与检测
- 新增 BGA 球自动检测、分级块标签和可视化网格索引选择
- 直方图灰度峰值/阈值线与灰度波峰分层着色

数据与存储
- 重构 XPData 目录(Runtime/Plans/Assets/Results)
- 统一 .xpcnc/.xppipe/.xppool/.xpmap/.xpmatrix/.xpz 文件约定
- 检测池定义与计划统一持久化,模板资源随程序保存

安装与发布
- 新增 XP.Installer(WiX)打包解决方案及品牌/多语言授权界面
- 集成 Velopack 更新、自动注入版本号和 Git 提交号
- 新增发布脚本、版本记录页,默认虚拟导航相机

其他
- 修复启动崩溃、Nova 资源与发布配置,更新文档和测试
2026-08-11 13:35:28 +08:00
zhengxuan.zhang ec246e8ec1 修复 CNC manifest 节点名称问题:
新增 PositionName 字段,保存所属位置节点名称,如“位置1”“位置2”。
CNC 采图、模板匹配、检测模块结果均写入位置名称。
manifest 生成时不再仅依赖树形 NodeIndex。
报告页面标题优先显示位置名称,旧数据仍回退显示节点序号。
增加数据库字段迁移,兼容已有数据库。
2026-08-11 13:19:55 +08:00
zhengxuan.zhang ef21965a53 fix: validate processor parameter inputs 2026-08-11 13:03:12 +08:00
zhengxuan.zhang 35faa70e9c fix: localize main status and debug ribbon 2026-08-11 11:50:16 +08:00
zhengxuan.zhang 50f5290a4e fix: localize main ribbon commands 2026-08-11 11:40:42 +08:00
zhengxuan.zhang e96e4038e9 feat: localize inspection panels and settings tabs 2026-08-11 11:33:14 +08:00
zhengxuan.zhang a201f2c102 feat: localize core views and splash screen 2026-08-11 11:20:23 +08:00
zhengxuan.zhang 8bd0fb660a fix: use external runtime app configuration 2026-08-11 10:47:48 +08:00
zhengxuan.zhang a4646b822b fix: apply language changes immediately 2026-08-11 10:15:06 +08:00
zhengxuan.zhang cf098a629d CNC运行前和运行后,清除 运动层缓存的偏移量 2026-08-11 10:07:04 +08:00
zhengxuan.zhang 76f5da99d1 fix: use XY motion for CNC template alignment 2026-08-11 09:58:56 +08:00
zhengxuan.zhang a43981ab53 fix: add CNC review accept skip abort actions 2026-08-11 09:36:49 +08:00