图像处理:Halcon滤波算法的工作机制与原理解析
对目标图像的噪声进行抑制,去噪分为时域去噪和频域去噪,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。常见的滤波方式有均值滤波、中值滤波、高斯滤波等。
(1)均值滤波—mean_image
理想的均值滤波是用每个像素和它周围像素计算出来的平均值替换图像中每个像素。
从频率域观点来看均值滤波是一种低通滤波器(让图像的低频部分通过,通常弱化边缘,会得到比较平缓的图像),高频信号将会去掉,因此可以帮助消除图像尖锐噪声,实现图像平滑,模糊等功能。因为此方法不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊。采样Kernel数据通常是3X3的矩阵,如下表示:
从左到右从上到下计算图像中的每个像素,最终得到处理后的图像。均值滤波可以加上两个参数,即迭代次数,Kernel数据大小。一个相同的Kernel,但是多次迭代就会效果越来越好。同样,迭代次数相同,Kernel矩阵越大,均值滤波的效果就越明显。
优势:消除尖锐噪声,实现图像平滑,模糊等功能。
(2)中值滤波—median_Image
特别是消除椒盐噪声,中值滤波的效果要比均值滤波更好。它的基本原理是计算出数字图像中的一点的一个邻域中的各点值的中值(中间值),并使用该中值将将该点原值代替。可以理解为使用一个窗口沿图像移动,用窗口内所有象素灰度的中值来代替窗口中心位置的象素灰度。窗口根据需要定义,可以是3* 3,5 *5的方形、十字形或者圆形等。
优势:消除椒盐噪声。
椒盐噪声如图所示:
(3)高斯滤波—gauss_image
可以理解为用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。
优势:消除高斯噪声。
高斯噪声如图所示
产生原因:
- 图像传感器在拍摄时市场不够明亮、亮度不够均匀;
- 电路各元器件自身噪声和相互影响;
- 图像传感器长期工作,温度过高。
戳戳小手帮忙点个免费的赞和关注吧,嘿嘿。 |
推荐阅读
-
详解常见图像滤波算法的实践操作与原理解析
-
图像处理:Halcon滤波算法的工作机制与原理解析
-
常用图像滤波算法的实现与原理解析
-
[Halcon&拟合] 拟合直线边缘并计算距离-图像预处理: 一般是去噪或抠图(blob分析抠图或手绘ROI区域抠图)两方面 轮廓提取: 1)boundary:区域轮廓提取 2)edges_sub_pix:图像轮廓提取 3)threshold_sub_pix:图像轮廓提取 使用算子edges_sub_pix进行亚像素的边缘提取最为普遍。其用到的滤波器有Deriche, Lanser, Shen, or Canny filters。 关于这几个滤波器的对比,帮助文档有如下介绍: Deriche, Lanser, Shen为递归滤波器,Canny 为掩膜滤波器; 递归滤波器的执行时间不依赖滤波器的大小,Canny的执行时间与滤波器大小成正相关。 参数alpha数值越大,Deriche, Lanser, Shen滤波器宽度越小,平滑越差,细节越突出,而Canny效果相反。 分割、联合(根据情况而定) 分割算子: segment_contours_xld:可分割’lines’,‘lines_circles’,‘lines_ellipses’,原理是多边形逼近,逼近程度通过算子中后两个阀值参数控制。 联合算子: 临近:union_adjacent_contours_xld (Operator) 共线:union_collinear_contours_xld (Operator) 共圆:union_cocircular_contours_xld (Operator) 拟合 fit_line_contour_xld:拟合直线 fit_line_contour_xld:拟合圆 fit_ellipse_contour_xld:拟合椭圆 fit_rectangle2_contour_xld:拟合矩形 注:有时候在拟合轮廓之前需要判断一下轮廓属性,以确定应拟合成直线还是还是圆,可通过算子:get_contour_global_attrib_xld (SingleSegment,‘cont_approx’,)名字:获取轮廓属性描述:用于确定应拟合成直线还是还是圆参数:SingleSegment:输入轮廓(input_object)cont_approx:属性名称,即采用什么方式去计算 ,一般用这个参数就可以了(input_control)Attrib:属性值: Attrib>0:拟合圆,否则拟合直线(output_control) ) 求距离 二、示例: