在 halocn 的 derivate_gauss 函数中,当 component 参数设置为 "2nd_ddg" 时,表示计算图像的二阶方向微分。
具体来说,“2nd_ddg”表示:
2nd - 二阶导数,相当于拉普拉斯算子
ddg - directional derivative in Gaussian scale space,高斯尺度空间下的方向微分
所以 component="2nd_ddg" 将计算每个像素在高斯尺度空间下,两个方向(水平和竖直)的二阶微分之和。
这相当于计算图像的拉普拉斯运算符,可以用来实现像素级的edge/blob检测。
这将计算img的二阶方向微分,得到拉普拉斯图像laplacian。
相比一阶微分,二阶微分对噪声更加敏感,所以需要合适的高斯平滑(sigma参数)。
总之,设置 component="2nd_ddg" 可以直接使用 derviate_gauss 来计算图像的拉普拉斯结果。
在 halocn 的derivate_gauss函数中,当component参数设置为"gradient"时,表示计算图像的梯度幅值。
具体来说,它将同时计算图像x方向和y方向的一阶导数,然后计算这两个方向导数的幅值作为最终输出。
计算过程如下:
分别计算图像竖直方向(x)和水平方向(y)的一阶导数,即dx和dy
计算每个像素的梯度幅值:grad = sqrt(dx^2 + dy^2)
grad就是输出的梯度幅值图像
这将计算img的梯度幅值图像grad。
相比只计算某个方向的一阶导数,梯度幅值能反映像素的整体变化程度。它常用于边缘检测等任务。
所以,设置component="gradient"可以直接使用derivate_gauss获得图像梯度结果。
需要注意的是,要得到灰度梯度图像,img需要是单通道图像。如果是三通道彩色图,结果grad也会是三通道。 |