用python或Halcon求图像的绝对值导数

2024-09-27 21:32:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用高斯滤波器从图中的1得到的是2。我要3号。我想得到导数,但只是绝对量。 what I want

我基本上想过滤掉大三角形的梯度,只得到不规则的东西(图像中的箭头) anotherpic

我也可以用正弦代替三角形,这样容易吗? 如何在python或halcon中实现这一点?为了更好地理解我想要什么以及如何实现它,我应该研究什么?你知道吗

编辑:我想找到“缺陷”,摆脱模式 理论: sampleimage

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


Tags: 图像编辑模式箭头理论梯度导数正弦
2条回答

同意小猪,如果你的模式的频率远远低于你的缺陷,陷波滤波器是首选工具。你知道吗

也同意,如果你有多帧校准条纹图案,那么你有一个可用的选项阵列。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) Smoothed image

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

high frequency defects segmented

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

所以折衷的办法是FFT/DFT滤波器不利用方向图,留下边缘/谐波伪影。高通滤波器方法(如上所述)对缺陷不敏感,因为接近/超过条纹频率。你知道吗

高斯滤波器不提供导数。这是平均水平。你知道吗

你假设高斯函数会给你2作为输入1是不正确的。你知道吗

例如,用陷波滤波器来抑制背景的低频。你知道吗

又快又脏的例子:

enter image description here

另见Find proper notch filter to remove pattern from image

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

相关问题 更多 >

    热门问题