拉普拉斯算子也是一种基于图像导数运算的高通线性滤波器,它通过计算二阶导数来度量图像函数的曲率。 在 OpenCV 中,可用 cv::Laplacian 函数计算图像的拉普拉斯算子。它与 cv::Sobel 函数非常类似。实际上,为了获得核心矩阵,它们使用了同一个基本函数 cv::getDerivKernels。根据定义,它采用二阶导数,因此和 cv::Sobel 函数唯一的区别是它没有用来表示导数的阶的参数。 我们为这个算子创建一个简单的类,封装几个与拉普拉斯算子有关的运算。基本的属性和方法如下所示:
class LaplacianZC {
private:
cv::Mat laplace;
int aperture;
public:
LaplacianZC() : aperture(3) {}
void setAperture(int a) {
aperture= a;
}
cv::Mat computeLaplacian(const cv::Mat& image) {
cv::Laplacian(image,laplace,CV_32F,aperture);
return laplace;
}
|