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)
同意小猪,如果你的模式的频率远远低于你的缺陷,陷波滤波器是首选工具。你知道吗
也同意,如果你有多帧校准条纹图案,那么你有一个可用的选项阵列。Halcon的最新版本有内置的挠度计操作符。你知道吗
对于quick-n-dirty,还可以使用矩形内核来利用模式的一般方向。这相当于正交各向异性高通滤波器。你知道吗
平滑平均算子。垂直定向内核(本例中为3x15)
从原始图像和阈值中减去平滑图像:
从那里,您可以运行连接操作符并使用区域特性来进一步突出缺陷。你会注意到这种方法并没有为低频缺陷(凹痕?)提供那么强的信号。你知道吗
所以折衷的办法是FFT/DFT滤波器不利用方向图,留下边缘/谐波伪影。高通滤波器方法(如上所述)对缺陷不敏感,因为接近/超过条纹频率。你知道吗
高斯滤波器不提供导数。这是平均水平。你知道吗
你假设高斯函数会给你2作为输入1是不正确的。你知道吗
例如,用陷波滤波器来抑制背景的低频。你知道吗
又快又脏的例子:
另见Find proper notch filter to remove pattern from image
另一个简单的方法是使用一个行阈值或背景减法,如果背景总是这样对齐
相关问题 更多 >
编程相关推荐