【数字图像处理】图像边缘锐化之梯度锐化

 

关于具体在实际场景的使用和图像会慢慢更新。

梯度锐化方法

图像平滑往往使图像中的边界、轮廓变得模糊,为了减少影响,需要利用图像锐化技术,使边缘变得清晰。常用的方法有:

  • 直接以梯度值代替
  • 辅以门限判断
  • 给边缘规定一个特定的灰度级
  • 给背景规定灰度级
  • 根据梯度二值化图像

 

梯度运算

  梯度锐化中,首先应该知道梯度是什么,怎么计算。

  梯度是一个矢量,由分别沿x方向和y方向计算微分的结果构成。

  构成有以下几种方式:

 

 

 

梯度锐化

直接以梯度值代替

思路:目标图像像素点用双向一次微分结果替代。

for(int i = 1; i < Use_ROWS- 1; i++)   
 {
   for(int j = 1; j < Use_Line -1; j++)
    {
      Image_Use[i][j] = sqrt((Image_Use[i][j+1] - Image_Use[i][j])*(Image_Use[i][j+1] - Image_Use[i][j])+(Image_Use[i+1][j] - Image_Use[i][j])*(Image_Use[i+1][j] - Image_Use[i][j]));
    }
  }

 

 

辅以门限判断

思路:我们对梯度(变化率)取了一个预值,当图像的梯度变化很小时,本来是物体内部的数据的亮度分布不均匀产生的偏差,可以不考虑进去。只有大于等于一定预值,才认为是边界,否则恢复为原灰度值。

如果变化率超过了一定的预值,认为是边界,因为边界值还是很小,所以加上100,目的增强亮度(梯度),需要判断一下这个值,如果大于255,直接等于255.

 

 

 

给边缘规定一个特定的灰度级

思路:La为规定灰度值,我们对变化率取了一个预值,如果梯度大于等于预值,直接设置为la,否则恢复为原灰度值。

 

 

 

给背景规定灰度级

思路:Lb为规定灰度值,我们对变化率取了一个预值,如果梯度大于等于预值,使用梯度替代原像素值,否则为Lb。

 

 

 

根据梯度二值化图像

思路:我们对变化率取了一个预值,如果梯度大于等于预值,置为255,否则置为0。

           int tidu=0,tidu_Threshold=50;for(int i = 1; i < Use_ROWS- 1; i++)   
                 {
                    for(int j = 1; j < Use_Line -1; j++)
                    {
                     tidu = sqrt((Image_Use[i][j+1] - Image_Use[i][j])*(Image_Use[i][j+1] - Image_Use[i][j])+(Image_Use[i+1][j] - Image_Use[i][j])*(Image_Use[i+1][j] - Image_Use[i][j]));
                     if(tidu>tidu_Threshold)
                       Image_Use[i][j] = 0;
                     else
                       Image_Use[i][j] = 255;
                    }
                 }

 

posted @ 2019-09-12 13:03  -零  阅读(5579)  评论(0编辑  收藏  举报