← ブログ一覧へ
图像处理方法论工程思维OpenCVMicroLED光学评价

图像处理的本质,不是调库,而是把现象变成可计算的信息

この記事は中国語で書かれ、Google 翻訳で自動翻訳されています。
中国語の原文を見る →

图像处理的本质,不是调库,而是把现象变成可计算的信息

很多人第一次接触图像处理,最先接触到的往往不是“问题本身”,而是工具。

比如:

  • 学 OpenCV
  • 学 Python 读图、二值化、轮廓提取
  • 学目标检测模型怎么训练
  • 学一堆 API 怎么调

久而久之,很容易形成一种错觉:

图像处理 = 会不会调库。

这当然不能说完全错,但如果真的进入工程现场,尤其是像半导体、MicroLED、光学评价、缺陷检测这类场景,你很快就会发现:

真正决定你做得好不好的,往往不是你会多少 API,而是你能不能把一个“看起来模糊的现象”,翻译成可计算、可比较、可复现的信息。

这件事听上去有点抽象,但它恰恰是图像处理在工程里最本质的价值。

不是把图处理得更漂亮, 而是把原本依赖经验的观察,变成一套能支撑判断和决策的流程。


一、图像在工程里不是“图片”,而是测量信息的载体

如果只是从社交媒体或普通软件角度理解图像,图像往往只是“给人看”的东西。

  • 一张照片
  • 一帧视频
  • 一张截图

但在工程里,图像通常不是拿来欣赏的,而是拿来承载信息的。

比如在 MicroLED 或光学评价里,一张图像里可能包含的是:

  • 发光强度分布
  • 像素均匀性
  • 缺陷位置
  • 热点漂移
  • 配光图案形变
  • 边缘亮度衰减
  • 时序切换后的异常

也就是说,你看到的不是“图片内容”,而是某种物理现象的空间投影。

这时候图像处理的任务就不是“美化图像”,而是:

把这种空间投影里的模式提取出来,并变成工程上能用的判断依据。

所以图像处理的起点从来都不是 OpenCV,而是:

你到底想从图像里读出什么信息?

如果这个问题没有想清楚,后面的阈值、滤波、分割、建模,很容易全部沦为技术表演。


二、工程里的图像处理,本质上是在做“翻译”

这是我自己越来越强烈的体会。

图像处理最核心的角色,不是算法炫技,而是翻译。

它在翻译三样东西:

1. 把“看见的现象”翻译成“可描述的量”

比如:

  • “好像有点不均匀” → 均匀性热力图 + CV 指标
  • “这块区域偏亮” → ROI 平均灰度 / 亮度偏差
  • “像是有死点” → 连通域面积异常 + 候选缺陷数

2. 把“复杂图像”翻译成“可比较的结构”

比如:

  • 一张原始发光图 → 16×16 网格亮度矩阵
  • 一张远场配光图 → 热区 / 防眩区 / cutoff 区域统计
  • 一段时序视频 → 多帧缺陷出现概率与稳定性曲线

3. 把“经验判断”翻译成“系统规则”

比如:

  • 老工程师说“看起来像坏了”
  • 最后要落地成:
    • 什么条件下判异常?
    • 阈值怎么定义?
    • 哪些情况要人工复核?
    • 哪些逻辑值得迁移到 FPGA / BIST / C++?

所以图像处理不是一个单点技术动作,而是一条从现象到规则的翻译链。


三、为什么很多图像处理项目做着做着就歪了?

因为太多人一开始就把注意力放在“处理”上,却忽略了“问题定义”。

常见的错误路径是这样的:

  • 先上 OpenCV
  • 先试阈值
  • 先跑一个检测模型
  • 先把代码写出来
  • 然后才发现自己其实根本没有定义清楚:什么叫异常,什么叫通过,什么叫系统误差

这就会导致一个很典型的问题:

模型越来越复杂,结论却越来越不可信。

因为如果问题本身没定义好,算法越复杂,只是在更快地放大不确定性。

比如在光学评价里,经常会出现:

  • 自动曝光没关,结果你在分析相机补偿,不是在分析器件
  • 镜头暗角没处理,结果你把光学系统误差当成样品问题
  • ROI 没定义清楚,结果每次比较的根本不是同一块区域
  • 单帧结果被当成长期稳定性结论,忽略了时序漂移和偶发问题

这些问题,都不是“算法能力不足”,而是信息链前端就已经污染了

所以我越来越觉得,在工程里谈图像处理,必须先把这句话摆在前面:

图像处理首先是测量与表征问题,其次才是算法问题。


四、图像处理的真正链条,不是“读图 → 调库 → 出结果”

如果用一种更工程化的方式来描述,我会把图像处理拆成下面这条链:

1. 采集(Acquisition)

你拿到的到底是什么?

  • 相机类型
  • 曝光 / 增益 / 白平衡
  • 光学系统
  • 拍摄姿态
  • 时序条件

2. 校准(Calibration)

你是否知道成像链路本身带来了什么偏差?

  • 镜头暗角
  • 几何畸变
  • 光轴偏斜
  • 背景噪声
  • 环境光影响

3. 表征(Representation)

你准备把图像变成什么形式?

  • 灰度矩阵
  • 网格统计
  • ROI 分区
  • 二值掩膜
  • 特征向量
  • 点云 / 体数据

4. 提取(Extraction)

你要提取什么?

  • 边缘
  • 缺陷
  • 亮度分布
  • 连通域
  • 纹理特征
  • 时序变化

5. 判定(Decision)

什么叫异常?

  • 规则阈值
  • 模板比对
  • 统计分布偏移
  • AI 分类 / 检测
  • 多条件联合决策

6. 落地(Deployment)

这套逻辑最终要在哪里跑?

  • Notebook 里验证
  • Python 工具里跑批
  • C++ 量产软件
  • FPGA / BIST 硬件逻辑
  • 云端服务 / 边缘设备

如果把这条链看清楚,你就会明白:

OpenCV、scikit-image、libvips、YOLO、ITK、Open3D 这些库,其实都只是这条链上不同环节的工具。

它们不是本体,本体是这条信息转换链本身。


五、为什么我一直说“OpenCV 不是主角”?

不是因为 OpenCV 不重要。

恰恰相反,OpenCV 很重要,而且我自己也经常用。

但问题在于,太多人把它当成“图像处理本身”。

而在我的理解里,OpenCV 更像是:

  • 一把很顺手的快刀
  • 一个很好的原型验证工具
  • 一个把模糊问题快速变清晰的试验场

它很适合:

  • 快速读图
  • 切 ROI
  • 做阈值
  • 画热力图
  • 跑连通域
  • 做原型级判断

但它不是:

  • 所有问题的最终解
  • 大图系统的唯一底座
  • 医学影像的主工具
  • 3D 点云的主要工具
  • 量产实时系统的天然答案

所以“会不会 OpenCV”并不等于“会不会图像处理”。

更准确地说:

OpenCV 是图像处理工程能力的一部分,而不是全部。

这也是为什么我后面又补了两篇:

  • 一篇讲 OpenCV 之外的工具生态
  • 一篇讲从实验室到量产的工具链组合

因为我不想让整个话题停留在“某个库怎么用”。


六、真正把图像处理拉开差距的,是“工程判断力”

我现在越来越相信,图像处理这件事真正把人拉开差距的地方,不是代码熟练度本身,而是工程判断力。

比如下面这些问题:

  • 这个现象值得测吗?
  • 这个指标真的和质量相关吗?
  • 这个异常是样品问题,还是成像系统问题?
  • 这个算法适合原型验证,还是已经值得做量产实现?
  • 现在该继续堆算法,还是先回头重新定义采集条件?

这些问题,单靠调库是答不出来的。

它需要你同时理解:

  • 物理现象
  • 光学链路
  • 数据分布
  • 工程约束
  • 最终业务目标

所以图像处理在工程里更像一种复合能力:

它站在光学、算法、系统、制造和决策之间。

谁能把这几件事接起来,谁才真正拥有“图像处理能力”。


七、把这件事放回 MicroLED / 半导体场景里看

在 MicroLED、半导体光学评价、缺陷检测这类场景里,这个问题会更明显。

因为你面对的从来不只是“图片”:

  • 你面对的是像素阵列
  • 是发光分布
  • 是热-光-电耦合后的表现
  • 是工艺偏差映射到空间图像上的痕迹
  • 是某种系统行为被相机记录下来的可视化结果

这时候图像处理真正有价值的地方,不是“把图修漂亮”,而是:

  • 帮你看见问题
  • 帮你定义指标
  • 帮你定位根因
  • 帮你确认哪些逻辑值得进系统、进硬件、进量产

这也就是为什么对我来说,图像处理从来都不是软件附属技能。

它本质上是一种:

把复杂物理现象压缩成工程判断依据的能力。


八、如果你要真正建立图像处理能力,应该先练什么?

如果只给建议,不谈空话,我会建议先练这四件事:

1. 练“定义问题”的能力

先别急着选库。先问:

  • 我到底要测什么?
  • 我到底要判什么?
  • 什么叫异常?

2. 练“拆信息链”的能力

把图像处理问题拆成:

  • 采集
  • 校准
  • 表征
  • 提取
  • 判定
  • 落地

而不是一上来就调阈值。

3. 练“区分系统误差和样品问题”的能力

这是工程现场最值钱、也最容易被忽略的能力。

4. 工具要会,但不要把工具当本体

OpenCV 要会,YOLO 也可以会,libvips / ITK / Open3D 也值得了解。

但更重要的是知道:

什么时候该用它,什么时候不该用它。


结语

如果让我用一句话总结我现在对图像处理的理解,我会说:

图像处理的本质,不是调库,而是把现象变成可计算的信息,再把信息变成工程判断。

一旦站在这个角度回头看,你会发现:

  • OpenCV 只是工具,不是本体
  • AI 模型只是方法,不是目的
  • 真正重要的是那条从现象到决策的信息链

而只要这条链想清楚了,后面的工具、架构、部署,都会更顺。


相关文章:把这篇放回“图像处理专题”里看

0. 总纲篇(本文)

1. 实践篇

2. 生态篇

3. 架构篇