HALCON 图像处理库中的一个常用算子,用于计算图像的高斯导数。高斯导数是一种平滑导数,在计算过程中结合了高斯滤波,具有平滑噪声的效果。这个算子可以计算图像的不同导数,如梯度、一阶导数、二阶导数、以及 Hessian 行列式等。
derivate_gauss (Image : ResultImage, Sigma, Mode)
参数说明
-
输入参数
Image
: 输入图像,通常是灰度图像。Sigma
: 高斯函数的标准差,控制平滑的程度。值越大,平滑效果越明显,但可能会导致细节的丢失。Mode
: 导数的计算模式,常用的包括:'gradient'
: 计算图像的梯度幅度。'direction'
: 计算梯度方向。'x'
和'y'
: 分别计算图像在 x 方向和 y 方向的梯度。'xx'
和'yy'
: 分别计算图像在 x 方向和 y 方向的二阶导数。'xy'
: 计算图像在 x 和 y 方向的混合二阶导数。'det'
: 计算 Hessian 行列式。'laplace'
: 计算图像的拉普拉斯算子(由 x 和 y 方向的二阶导数组成)。
-
输出参数
ResultImage
: 输出的结果图像,取决于所选择的Mode
,可能是梯度幅度图像、梯度方向图像、Hessian 行列式图像等。
案例:
1.计算图像的梯度幅度,我们计算图像的梯度幅度,这对于边缘检测非常有用。
read_image (Image, 'fabrik')
derivate_gauss (Image, Gradient, 1.0, 'gradient')
dev_display (Gradient)
2.计算 Hessian 行列式,Hessian 行列式用于检测图像中的角点或显著特征点。
read_image (Image, 'fabrik')
derivate_gauss (Image, HessianDet, 1.5, 'det')
dev_display (HessianDet)
3.计算 x 和 y 方向的一阶导数,这些导数可以用于进一步的图像分析,如计算图像的方向场.
read_image (Image, 'fabrik')
derivate_gauss (Image, Dx, 1.0, 'x')
derivate_gauss (Image, Dy, 1.0, 'y')
dev_display (Dx)
dev_display (Dy)
Dx
: x 方向的一阶导数。Dy
: y 方向的一阶导数。
应用场景
- 边缘检测: 通过计算梯度幅度,可以检测图像中的边缘。
- 特征点检测: 计算 Hessian 行列式可以用于检测角点等特征点。
- 图像增强: 通过计算并增强图像的导数信息,可以提高图像的清晰度。
- 纹理分析: 通过分析不同方向的导数,可以提取图像中的纹理信息。