Halcon 图像预处理算子

本文概述了机器视觉中的关键预处理算法,包括腐蚀、膨胀、闭合和开操作,以及各种边缘检测方法如Sobel、Prewitt、Roberts和Laplace。同时介绍了二值化、动态二值化、图像增强等技术,展示了图像滤波和边缘检测在提升图像质量和稳定性的应用。
摘要由CSDN通过智能技术生成

在机器视觉领域,图像的预处理算法十分重要。
对于一些成像质量较差,受噪声影响较大的场景中,
为保证视觉测量,定位,检测效果的稳定性。
、往往第一步就是对图像做处理,这里对常用的预处理算法做总结。


*腐蚀图像  增加暗部,减少亮部
gray_erosion_rect (Image, ImageMin, 11, 11)

*膨胀图像 增加增加,减少暗部
gray_dilation_rect (Image, ImageMax, 11, 11)

*图像闭操作 减少甚至去除比其邻域更暗的图像部分
gray_closing_rect (Image, ImageClosing, 11, 11)

*图像开操作 减少更亮的区域
gray_opening_rect (Image, ImageOpening, 11, 11)

*边缘抽取 一阶微分
sobel_amp (Image, EdgeAmplitude, 'sum_abs', 3)

*水平边缘提取
sobel_amp (Image, EdgeAmplitude1, 'x', 3)

*垂直边缘提取
sobel_amp (Image, EdgeAmplitude1, 'y', 3)

*边缘增强 效果很明显,使得图像更清晰,可以提高边缘的质量,最后一个系数代表增强对比度的系数
emphasize (Image, ImageEmphasize, 7, 7, 1)

*prewitt 用prewitt方法进行边缘检测
prewitt_amp (Image, ImageEdgeAmp)

*roberts 是一种最简单的算子,是一种利用局部差分算子寻找边缘的算子。
他采用对角线方向相邻两像素之差近似梯度幅值检测边缘。
检测垂直边缘的效果好于斜向边缘,定位精度高,
对噪声敏感,无法抑制噪声的影响
roberts (Image, ImageRoberts, 'gradient_sum')

*laplace  Laplace算子作为边缘检测之一,和Sobel算子一样也是工程数学中常用的一种积分变换 一个二阶微分算子
laplace (Image, ImageLaplace, 'absolute', 3, 'n_4')


*二值化
get_image_size (Image, Width, Height)
threshold (Image, Region, 128, 255)
region_to_bin (Region, BinImage, 255, 0, Width, Height)

*动态二值化
mean_image (Image, ImageMean, Width, Height)
dyn_threshold (ImageMean, ImageMean, RegionDynThresh, 5, 'light')
region_to_bin (RegionDynThresh, BinImage1, 255, 0, Width, Height)

*黑白颠倒
invert_image (Image, ImageInvert)

*灰度拉伸
scale_image_max (ImageInvert, ImageScaleMax)

*直方图拉伸
equ_histo_image (Image, ImageEquHisto)

*纹理滤波
texture_laws (Image, ImageTexture, 'el', 2, 5)

图像滤波+边缘检测+图像增强实例
read_image (Image, 'fabrik')
*均值滤波
mean_image (Image, ImageMean, 9, 9)
*递归滤波器进行滤波
smooth_image (Image, ImageSmooth, 'deriche2', 0.5)
*sigma标准方差进行非线性滤波
sigma_image (Image, ImageSigma, 5, 5, 3)
*使用离散高斯函数对图像进行滤波
gauss_image (Image, ImageGauss, 5)
*中值滤波
median_image (Image, ImageMedian, 'circle', 1, 'mirrored')
 
 
*****边缘检测
*用frei_chen方法进行边缘检测
frei_amp (Image, ImageEdgeAmp)
*用Kirsch方法进行边缘检测
kirsch_amp (Image, ImageEdgeAmp1)
*用prewitt方法进行边缘检测
prewitt_amp (Image, ImageEdgeAmp2)
*用Sobel方法进行边缘检测
sobel_amp (Image, ImageEdgeAmp3, 'sum_abs', 3)
*抑制边缘上的非极大值点
nonmax_suppression_amp (Image, ImageResult, 'hvnms')
 
 
*****图像增强
*效果很明显,使得图像更清晰,可以提高边缘的质量,最后一个系数代表增强对比度的系数
emphasize (Image, ImageEmphasize, 7, 7, 5)
*增加图像对比度算子
*算法原理为图像很暗的部分可以变得很亮,很亮的部分可以变得更暗
*用算子mean_image进行低通滤波,滤波的掩膜尺寸的MaskWidth*MaskHeight
*假设原始图像的灰度为orig,mean_image滤波后灰度值为mean,结果灰度图像值为new
*对于位图val=127公式如下
*new=round((val-mean)*Factor+orig)
*其中Factor为系数 40 40 0.55  100 100 0.7 150 150 0.8
illuminate (Image, ImageIlluminate, 101, 101, 0.7)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值