12-Halcon机器视觉实例入门:图像滤波

图像滤波

1 均值滤波

mean_image算子实现均值滤波,其原型如下:

  • mean_image(Image : ImageMean : MaskWidth, MaskHeight : )

其中,参数Image为输入参数;ImageMean为输出参数;MaskWidth均值滤波窗口的宽度;MaskHeight为均值滤波窗口的高度;

* 图像均值滤波

*读取图像
read_image(src,'fabrik')

* 添加噪声
add_noise_white(src,src_noise,10)

* 窗口为3x3
mean_image(src,result_3x3,3,3)

* 窗口为9x9
mean_image(src,result_9x9,9,9)

dev_display(result_3x3)

原图像:

12-Halcon机器视觉实例入门:图像滤波_第1张图片

噪声图像
12-Halcon机器视觉实例入门:图像滤波_第2张图片

均值滤波,窗口3x3滤波结果:

12-Halcon机器视觉实例入门:图像滤波_第3张图片

2 中值滤波

median_image算子实现中值滤波,其原型如下:

  • median_image(Image : ImageMedian : MaskType, Radius, Margin : )

其中,参数Image为输入图像;ImageMedian为输出图像;MaskType为滤波类型,类型有circle, square;Radius为滤波窗口大小;Margin为边缘填充类型,建议值:‘mirrored’, ‘cyclic’, ‘continued’, 0, 30, 60, 90, 120, 150, 180, 210, 240, 255。


median_image(src,result,'circle',3,'mirrored')

dev_display(result)

滤波结果:

12-Halcon机器视觉实例入门:图像滤波_第4张图片

3 高斯滤波

gaussian_image算子实现高斯滤波,其原型如下:

  • gauss_filter(Image : ImageGauss : Size : )

其中,参数Image为输入参数;ImageGauss为输出图像;Size为滤波窗口的大小。

``

  • 图像高斯滤波

*读取图像
read_image(src,‘fabrik’)

  • 添加噪声
    add_noise_white(src,src_noise,10)

  • 窗口为3x3
    gauss_filter(src,result,3)

dev_display(result)
``

滤波结果:

12-Halcon机器视觉实例入门:图像滤波_第5张图片

4 导向滤波.

guided_filter算子实现导向滤波。其原型如下:

  • guided_filter(Image, ImageGuide : ImageGuided : Radius, Amplitude : )

其中,参数Image为输入图像;ImageGuide为输入导向图像;ImageGuide为输出图像;Radius为滤波窗口大小;Amplitude控制边缘平滑度;

* 图像导向滤波

*读取图像
read_image(src,'fabrik')

* 添加噪声
add_noise_white(src,src_noise,10)

* 导向滤波
guided_filter(src,src,result,3,20)

dev_display(result)

运行结果:

12-Halcon机器视觉实例入门:图像滤波_第6张图片

5 双边滤波

bilateral_filter算子实现双边滤波。其原型为:

  • bilateral_filter(Image, ImageJoint : ImageBilateral : SigmaSpatial, SigmaRange, GenParamName, GenParamValue : )

其中,参数Image为输入图像;ImageJoint为输入连接图像;ImageBilateral为输出图像;SigmaSpatial高斯最近大小;SigmaRange高斯近似值;GenParamName,GenParamValue为常规参数名称(sampling_method’, ‘sampling_ratio’)及其对应值( ‘grid’, ‘poisson_disk’, ‘exact’, 0.5, 0.25, 0.75, 1.0)。

* 图像双边滤波

* 读取图像
read_image(src,'fabrik')

* 添加噪声
add_noise_white(src,src_noise,20)

* 双边滤波
bilateral_filter(src_noise,src_noise,result,5,20,[],[])

dev_display(result)

程序结果:

12-Halcon机器视觉实例入门:图像滤波_第7张图片

你可能感兴趣的:(机器视觉,图像处理,Halcon)