• 图像增强之空间域锐化


    1、图像锐化理论

    图像锐化的目的是使图像变得清晰起来,锐化主要用于增强图像的灰度跳变部分,这一点与图像平滑对灰度跳变的抑制正好相反。锐化提高图像的高频分量,增加灰度反差增强图像的边缘和轮廓,以便后期图像识别。

    在图像增强过程中,常用平滑算法来消除噪声,平滑属于低通滤波,图像的能量主要集中在低频部分,噪声所在频段主要在高频部分,同时图像的边缘也集中在高频部分,这意味着图像平滑后,高频被衰减轮廓会出现模糊。图像锐化就是为了减少这种现象,通过高通滤波使图像边缘和轮廓变得清晰。

    2、一阶微分图像增强--梯度算子

    其中:

    梯度的方向就是函数f(x,y)最大变化率的方向。梯度的幅值作为最大变化率大小的度量,值为:  

    离散的二维函数f(i,j),可以用有限差分作为梯度的一个近似值。

    为了简化计算,可以用绝对值来近似。

    |f(i,j)|= |f(i+1,j)-f(i,j)| +|f(i,j+1)-f(i,j)|

    2.1 Robert算子

       |f(i,j)|= |f(i+1,j+1)-f(i,j)| +|f(i,j+1)-f(i+1,j)|

    上面算式采用对角相差的差分法来代替微分,写为滤波模板形式为:

    其中w1对接近45°的边缘有较强响应,w2对接近-45°的边缘有较强响应。

    imgPath = 'E:opencv_picsrc_picpic6.bmp';
    img = imread(imgPath);
    img=rgb2gray(img);
    w1 =[-1,0; 0,1];
    w2 =[0,-1; 1, 0];
     
    G1=imfilter(img, w1, 'corr', 'replicate');
    G2=imfilter(img, w2, 'corr', 'replicate');
    G=abs(G1)+abs(G2);
    subplot(2,2,1),imshow(img), title('原始图像');
    subplot(2,2,2),imshow(abs(G1)), title('w1图像');
    subplot(2,2,3),imshow(abs(G2)),title('w2滤波');
    subplot(2,2,4),imshow(G),title('Robert交叉梯度图像');

    可见w1滤波后45°的边缘被突出,w2滤波后-45°的边缘被突出。Robert交叉滤波后全部边缘突出显示。

    2.2 Sobel算子

    滤波时一般更多使用奇数尺寸的模板,下面是Sobel算子。

    imgPath = 'E:opencv_picsrc_picpic6.bmp';
    img = imread(imgPath);
    img=rgb2gray(img);
     
     
    w1 =[-1,-2,-1; 0,0,0;  1,2, 1];
    w2 =[ -1,0,1;  -2,0,2; -1,0,1];
    G1=imfilter(img, w1);
    G2=imfilter(img, w2);
    G=abs(G1)+abs(G2);
    subplot(2,2,1),imshow(img), title('原始图像');
    subplot(2,2,2),imshow(abs(G1)), title('w1图像');
    subplot(2,2,3),imshow(abs(G2)),title('w2滤波');
    subplot(2,2,4),imshow(G),title('Sobel交叉梯度图像');

    Robert算子,w1滤波后45°的边缘被突出,w2滤波后-45°的边缘被突出。Sobel交叉滤波后全部边缘突出显示。

    3、二阶微分滤波--拉普拉斯算子

    二维函数f(x,y)在二阶微分(拉普拉斯算子)的定义为:

     

    将上式相加后就得到拉普拉斯算子:

    对应的滤波模板如下:

    考虑到求绝对值计算梯度,正负系数图形的响应一样,上面的模板也可以表示为:

    上面的模板具有对称性,所以求一次滤波就可以,不需要像一阶微分那样计算2次。

    imgPath = 'E:opencv_picsrc_picpic6.bmp';
    img = imread(imgPath);
    img=rgb2gray(img);
     
    w1 =[0,1,0;  1,-4,1;   0,1,0];
    w2 =[0,-1,0; -1,4,-1;  0,-1,0];
    w3 =[1,4,1; 4,-20,4;  1,4,1];
    G1=imfilter(img, w1, 'corr', 'replicate');
    G2=imfilter(img, w2, 'corr', 'replicate');
    G3=imfilter(img, w3, 'corr', 'replicate');
    
    subplot(2,2,1),imshow(img,[]), title('原始图像');
    subplot(2,2,2),imshow(abs(G1)), title('w1图像');
    subplot(2,2,3),imshow(abs(G2)),title('w2滤波');
    subplot(2,2,4),imshow(abs(G3)),title('加权二阶滤波');

    二阶滤波比之前的一阶滤波锐化程度更加强烈,留下了非常清晰的边缘图案。w1w2滤波的方向性不明显图像基本一致,仅w2滤波图像的轮廓更加深一些。

    使用imsharpen对图像进行锐化,对锐化强度参数进行控制,可见太高的锐化强度导致图像出现“纹理”,效果变差。

    b1=imsharpen(img,'Radius',1,'Amount',0.2);
    b2=imsharpen(img,'Radius',1,'Amount',2);
    b3=imsharpen(img,'Radius',1,'Amount',1);
    subplot(1,4,1),imshow(img), title('原始图像');
    subplot(1,4,2),imshow(b1), title('imsharpen图像1');
    subplot(1,4,3),imshow(b2), title('imsharpen图像2');
    subplot(1,4,4),imshow(b3), title('imsharpen图像3');

    4、锐化图像后续处理

    无论一阶微分算子还是二阶微分算子,各系数之和都为0,说明算子在灰度恒定区域的响应为0,即锐化后的图像,在原图比较平坦的区域几乎都变为黑色,而在图像边缘,灰度跳变点的细节被突出显示。一般图像锐化是希望增强图像的边缘和细节,而非将平滑区域的灰度信息丢失。因此,可以用原图像加上锐化后的图像,得到比较理想的结果。

    使用Sobel算子锐化和matlab内置锐化函数锐化之后的图像对比,下图是内置函数锐化结果:

    b=imsharpen(img,'Radius',2,'Amount',1);
    subplot(1,2,1),imshow(img), title('原始图像');
    subplot(1,2,2),imshow(b), title('imsharpen图像');

    imsharpen滤波图像明显比算子锐化的图像亮度更高,保留了原图比较平坦的部分,比如背景图部分。如果希望上面的滤波函数也达到这个效果,只需要把原图加上滤波后的图像即可,系数是为了防止溢出,比如下面的例子。使用函数为imshow(G+0.7*img),title('Sobel交叉梯度图像')。

    5、参考文献

    1MATLAB--数字图像处理 图像锐化(原理篇)

    https://www.csdn.net/gather_24/MtjaMg4sMjg1OS1ibG9n.html

    2imsharpen

    https://ww2.mathworks.cn/help/images/ref/imsharpen.html

    3、《数字图像处理与机器视觉》

    第二版。 张铮、徐超、任淑霞、韩海玲等编著。

     

     尊重原创技术文章,转载请注明。

    https://www.cnblogs.com/pingwen/p/12275235.html

  • 相关阅读:
    使用Fiddler和雷电模拟器抓取安卓https请求
    Robot Framework -- 安装接口测试库
    Robot Framework --为了进行Web测试,安装SeleniumLibrary外部库
    robotframework+python3+eclipse+RED自动化测试框架初学笔记
    LeetCode Weekly Contest 27
    LeetCode Weekly Contest 26
    京东4.7实习笔试题
    牛客网模拟笔试 2
    4.1几道最近的题目
    网易3.25实习笔试
  • 原文地址:https://www.cnblogs.com/pingwen/p/12275235.html
Copyright © 2020-2023  润新知