锐化空间滤波器

Posted zhangqixiang5449

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了锐化空间滤波器相关的知识,希望对你有一定的参考价值。

锐化处理主要目的是突出灰度过度部分。

二阶微分-拉普拉斯算子锐化

两变量的离散拉普拉斯算子是:

void laplaceSharpenl()
    auto im = imread("/Users/qixiangzhang/Desktop/openCV/jy.png");
    Mat dst;
    Mat kernel = (Mat_<float>(3,3) << 0,-1,0,-1,5,-1,0,-1,0);
    filter2D(im, dst, im.depth(), kernel);
    imshow("Original", im);
    imshow("Sharpenl", dst);

结果:

标定的拉普拉斯滤波图像:
拉普拉斯滤波处理后图像中既有正值又有负值,所有负值被修剪为0,很多经过拉普拉斯滤波后的图像大部分是黑色的。典型的标定拉普拉斯图像的方法是对他的最小值加一个新的代替0的最小值。


非锐化掩蔽和高提升滤波

非锐化掩蔽的处理步骤:
1)模糊原图像。
2)从原图中减去模糊的图像得到模板。
3)将模板加到原图像上。
公式描述:

代码:

void Unsharp()
    auto im = imread("/Users/qixiangzhang/Desktop/openCV/yq.png");
    Mat dstIm_9;
    blur(im, dstIm_9, Size(9,9));//模糊
    imshow("Original",im);
    imshow("blur9", dstIm_9);
    Mat sub;
    absdiff(im,dstIm_9,sub);//相减
    Mat add;
    scaleAdd(im, 1, sub, add);//相加,非锐化掩蔽
    imshow("k=1",add);
    scaleAdd(im, 2, sub, add);//k=2,高提升滤波
    imshow("k=2",add);


梯度图像

梯度图像可理解为突出图像显著变化的地方,变化越大其梯度值越高。
图像函数f(x,y)在点(x,y)的梯度是一个具有大小和方向的矢量,设为Gx 和 Gy 分别表示x方向和y方向的梯度,这个梯度的矢量可以表示为:

这个矢量的幅度为:

近似为:

罗伯特交叉梯度算子
算子:

由两个2*2模板组成,用卷积模板表示为:

结合可得结果:

Soble算子
算子:

用上述方法可得:

其中z表示矩阵中该位置的值。
opencv接口:

CV_EXPORTS_W void Sobel( InputArray src, OutputArray dst, int ddepth,  
                         int dx, int dy, int ksize=3,  
                         double scale=1, double delta=0,  
                         int borderType=BORDER_DEFAULT );  

代码

void sobleIM()
    auto src = imread("/Users/qixiangzhang/Desktop/openCV/yq.png");
    imshow("1",src);
    //用高斯滤波进行模糊
    GaussianBlur( src, src, Size(3,3), 0, 0, BORDER_DEFAULT );

    Mat grad_x,grad_y;
    Mat abs_grad_x,abs_grad_y;
    //计算x梯度
    Sobel(src, grad_x, CV_8U, 1, 0);
    convertScaleAbs( grad_x, abs_grad_x );
    //计算y梯度
    Sobel(src, grad_y, CV_8U, 1, 0);
    convertScaleAbs( grad_y, abs_grad_y );
    //相加并加权。
    addWeighted( abs_grad_x, 1, abs_grad_y, 1, 0, src );
    imshow("soble1",src);

    addWeighted( abs_grad_x, 2, abs_grad_y, 2, 0, src );
    imshow("soble2",src);

结果:

以上是关于锐化空间滤波器的主要内容,如果未能解决你的问题,请参考以下文章

锐化空间滤波器

OpenCV 完整例程62. 图像锐化——钝化掩蔽

中值滤波与图像锐化

中值滤波与图像锐化

二值图像进行拉普拉斯锐化后产生的负数怎么办

数字图像处理-空间域处理-空间滤波-锐化空间滤波器