我一直在尝试各种方法来检测打印图像中的缺陷。被认定为缺陷的特征可能包括划痕、变色等。
我在图像处理方面不是很有经验,不确定我的方法是否可以接受。
我尝试了几种方法:
给定两张图片(一张是好的,另一张是缺陷的)
- 阈值和模糊
- 运行 Canny 边缘检测
- 使用去除噪音
fastNlMeansDenoising
- 对这两个图像进行异或运算,并用于
SIFT
查找可能被归类为缺陷的突出特征。
它工作得很好——在非常有限的情况下。
正如本文所见,这种方法似乎在工业中被使用/提出了一点(?)。但它的问题是,如果你有两个图像没有对齐到最轻微的位置,那么你会遇到问题,因为你所有的 XOR 都会导致一个非常错误的 XOR-ed 图像。所以对我来说,这似乎不是一个可接受的解决方案,因为不可能每次都完美地对齐两个图像(或者我可以尝试重新对齐图像)。
我应该如何处理这个问题。有没有一种类似于 XOR-ing 的方法更能容忍细微的差异?或者,也许是一种完全不同的方法。
可能的替代方案
将两个图像分成 n × n 像素的块。计算并比较从图像 A 到图像 B 分解的每个像素块的直方图。即使其中一个图像有点模糊,直方图应该仍然相似(不确定这是否是一个合理的假设)。如果任何块包含黑色或白色斑点,这应该标记该块以供进一步检查。
检测较深的字体颜色
检测不应该存在的眉毛
检测褪色/变亮区域