【数字图像处理】图像边缘锐化之梯度锐化
关于具体在实际场景的使用和图像会慢慢更新。
梯度锐化方法
图像平滑往往使图像中的边界、轮廓变得模糊,为了减少影响,需要利用图像锐化技术,使边缘变得清晰。常用的方法有:
- 直接以梯度值代替
- 辅以门限判断
- 给边缘规定一个特定的灰度级
- 给背景规定灰度级
- 根据梯度二值化图像
梯度运算
梯度锐化中,首先应该知道梯度是什么,怎么计算。
梯度是一个矢量,由分别沿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; } }