zoukankan      html  css  js  c++  java
  • 【数字图像处理】图像边缘锐化之梯度锐化

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

    梯度锐化方法

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

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

    梯度运算

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

      梯度是一个矢量,由分别沿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;
                        }
                     }
  • 相关阅读:
    《模糊测试--强制发掘安全漏洞的利器》阅读笔记(一)
    BrickerBot
    这些写的很好的PCA文章
    决策树(挖坑待填)
    线性回归
    关于给定DNA序列,如何找到合理的切割位点使得其退火温度保持相对一致
    生成全排列
    AVL树学习笔记
    二叉搜索树
    堆排序
  • 原文地址:https://www.cnblogs.com/-wenli/p/11511341.html
Copyright © 2011-2022 走看看