2

我认为使用高斯滤波器从图片中的 1 得到的是 2。我想得到数字 3。我想得到导数,但只是绝对数量。 我想要的是

我基本上想过滤掉大三角形的渐变并得到不规则性(图像中的箭头) 另一幅画

我也可以使用正弦而不是三角形,这样会更容易吗?如何在 python 或 halcon 中实现这个?我应该研究什么才能更好地理解我想要什么以及如何实现它?

编辑:我想找到“缺陷”并摆脱模式理论: 样本图像

具有真实缺陷的真实图像: 实像

4

2 回答 2

1

高斯滤波器不会为您提供导数。这是一个加权平均值。

您假设高斯会为输入 1 提供 2 是不正确的。

例如,只需使用陷波滤波器抑制背景的低频即可。

快速而肮脏的例子:

在此处输入图像描述

另请参阅查找适当的陷波滤波器以从图像中删除图案

如果背景总是像这样对齐,另一种简单的方法是使用逐行阈值或背景减法

于 2019-10-24T12:36:00.363 回答
1

同意 Piglet 的观点,如果您的图案频率大大低于您的缺陷频率,则陷波滤波器是首选工具。

还同意,如果您有多个校准条纹图案的框架,那么您有一系列可用的选项。最新版本的 Halcon 具有内置的偏转测量算子。

对于 quick-n-dirty,您还可以使用矩形内核来利用模式的一般方向。这相当于正交各向异性高通滤波器。

   read_image(imgInput, 'C:/Users/jpeyton/Documents/zzz_temp/FringePat_raw.jpg')
*smooth input image with mean using vertically oriented rectangular kernel
   mean_image (imgInput, imgMean, 3, 15)
*subtract smoothed image from raw image to get local / high frequency residuals
   abs_diff_image(imgMean,imgInput,imgAbsDiff, 1)
*threshold away background 
   threshold (imgAbsDiff, Regions, 8, 255)

用均值算子平滑。垂直方向的内核(在这种情况下为 3x15) 平滑图像

从原始图像和阈值中减去平滑图像:

高频缺陷分段

从那里,您可以运行连接运算符并使用区域特征来进一步突出缺陷。您会注意到这种方法不会为低频缺陷(凹痕?)提供那么强的信号。

所以权衡是 FFT/DFT 滤波器不利用模式的方向,并留下边缘/谐波伪影。高通滤波器方法(如上)不会对接近/超过边缘频率的缺陷敏感。

于 2019-12-17T17:15:29.717 回答