频域图像增强-锐化

图像增强技术根据增强处理过程所在的空间不同,可分为基于频域的算法和基于空域的算法两大类。基于频域的算法是在图像的某种变换域内对图像的变换系数值进行某种修正,是一种间接增强的算法,把图像看成一种二维信号,对其进行基于二维傅里叶变换的信号增强。采用低通滤波(即只让低频信号通过)法,可去掉图中的噪声;采用高通滤波法,则可增强边缘等高频信号,使模糊的图片变得清晰。

图像锐化主要影响图像中的低频分量,不影响图像中的高频分量。图像锐化的主要目的有两个:

1.增强图像边缘,使模糊的图像变得更加清晰,颜色变得鲜明突出,图像的质量有所改善,产生更适合人眼观察和识别的图像;

2.希望通过锐化处理后,目标物体的边缘鲜明,以便于提取目标的边缘、对图像进行分割、目标区域识别、区域形状提取等,进一步的图像理解与分析奠定基础。

图像锐化一般有两种方法:

1.微分法

2.高通滤波法

常用的微分锐化方法如:梯度锐化和拉普拉斯锐化。

邻域平均法或加权平均法可以平滑图像,反过来利用对应的微分算法可以锐化图像。微分算法是求信号的变化率,有加强高频分量作用,从而使图像轮廓清晰。对图像进行逆运算如微分运算,从而使图像清晰化。在图像处理中,一阶微分是通过梯度算法来实现的,对于一幅图像用函数f(x,y)表示,定义在f(x,y)在点(x,y)处的梯度是一个矢量,梯度的方向在函数f(x,y)最大变化率的方向上,梯度的幅度G[f(x,y)]可以由以下公式算出:

对于图像而言,物体与物体之间,背景与背景之间的梯度变化很小,灰度变化较大的地方一般集中在图像的边缘上,也就是物体和背景交接的地方。当我们设定一个阈值时,G[f(i,j)]大于阈值就认为该像素点处于图像的边缘,对结果加上常数C,以使边缘变亮;而对于G[f(i,j)]不大于阈值就认为该像素点为同类像素,即同为物体或同为背景,常数C的选取可以根据具体的图像特点。这样既增亮了图像的边界,同时又保留了图像背景原来的状态,比传统的梯度锐化具有更好的增强效果和适用性。


傅里叶变换的目的并不是为了观察图像的频率分布(至少不是最终目的),更多情况下是为了对频率进行过滤,通过修改频率以达到图像增强、图像去噪、边缘检测、特征提取、压缩加密等目的。

过滤的方法一般有三种:低通(Low-pass)、高通(High-pass)、带通(Band-pass)。,

 高通滤波器是指通过高频的滤波器,衰减低频而通过高频,常用于增强尖锐的细节,但会导致图像的对比度会降低。该滤波器将检测图像的某个区域,根据像素与周围像素的差值来提升像素的亮度。图展示了“Lena”图对应的频谱图像,其中心区域为低频部分。

低通滤波

低通滤波器是指通过低频的滤波器,衰减高频而通过低频,常用于模糊图像。可以把过滤器想象成一张渔网,想要低通过滤器,就是将高频区域的信号全部拉黑,而低频区域全部保留。低通滤波器与高通滤波器相反,当一个像素与周围像素的差值小于一个特定值时,平滑该像素的亮度,常用于去燥和模糊化处理。如PS软件中的高斯模糊,就是常见的模糊滤波器之一,属于削弱高频信号的低通滤波器。

下图展示了“Lena”图对应的频谱图像,其中心区域为低频部分。如果构造低通滤波器,则将频谱图像中心低频部分保留,其他部分替换为黑色0,其处理过程如图所示,最终得到的效果图为模糊图像。

滤波图像是通过低通滤波器和频谱图像形成。其中低通滤波器中心区域为白色255,其他区域为黑色0。

低通后结果:

高通滤波法

一般来说,图像的能量主要集中在其低频部分,噪声所在的频段主要在高频段,同时图像边缘信息也主要集中在其高频部分。这将导致原始图像在平滑处理之后,图像边缘和图像轮廓模糊的情况出现,为了减少这类不利效果的影响,就需要利用图像锐化技术,使图像的边缘、轮廓线以及图像的细节变得清晰。

从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。但要注意能够进行锐化处理的图像必须有较高的信噪比,否则锐化后图像性噪比反而更低,从而使得噪声增加的比信号还要多,因此一般是先去除或减轻噪声后再进行锐化处理

与低通滤波器相反,采用高通滤波让高频分量顺利通过,并适当抑制中低频分量,使图像的细节变得清楚,实现图像的锐化,但会导致图像的对比度会降低。该滤波器将检测图像的某个区域,根据像素与周围像素的差值来提升像素的亮度。图展示了“Lena”图对应的频谱图像,其中心区域为低频部分。

接着通过高通滤波器覆盖掉中心低频部分,将255两点变换为0,同时保留高频部分,其处理过程如下图所示。

通过高通滤波器将提取图像的边缘轮廓,生成如下图所示图像。

# -*- coding: utf-8 -*-
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt

#读取图像
img = cv.imread('Lena.png', 0)

#傅里叶变换
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)

#设置高通滤波器
rows, cols = img.shape
crow,ccol = int(rows/2), int(cols/2)
fshift[crow-30:crow+30, ccol-30:ccol+30] = 0

#傅里叶逆变换
ishift = np.fft.ifftshift(fshift)
iimg = np.fft.ifft2(ishift)
iimg = np.abs(iimg)

#显示原始图像和高通滤波处理图像
plt.subplot(121), plt.imshow(img, 'gray'), plt.title('Original Image')
plt.axis('off')
plt.subplot(122), plt.imshow(iimg, 'gray'), plt.title('Result Image')
plt.axis('off')
plt.show()

from:https://blog.csdn.net/Eastmount/article/details/89645301

高频提升滤波器

将高通滤波器提取的高频部分加到原图上,从而强化图像的边缘信息,达到锐化图像的效果。

clc
clear
f=imread('orig_chest_xray.tif'); %读入图像
subplot(2,2,1);
imshow(f)
title('原始图像')
%高斯高通滤波
I=double(f);
g=fft2(I);
g=fftshift(g);
[M,N]=size(g);
D0=40;
m=fix(M/2);n=fix(N/2);
for i=1:M
       for j=1:N
           D=sqrt((i-m)^2+(j-n)^2);
           H=exp(-(D.^2)./(2*(D0^2)));
           result(i,j)=(1-H)*g(i,j);
       end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
subplot(2,2,2);
imshow(J2)
title('高斯高通滤波后的图像')

%高频强调滤波
F=0.5+0.75*(1-H);
G=F*g;
result2=ifftshift(G);
J3=ifft2(result2);
J4=uint8(real(J3));
subplot(2,2,3)
imshow(J4)
title('高频强调滤波后的图像')

%对高频强调滤波后图像进行直方图均衡化
J5=histeq(J4,256);
J5=uint8(J5);
subplot(2,2,4);
imshow(J5)
title('直方图均衡化后的图像')

运行结果:

from:https://blog.csdn.net/learning_tortosie/article/details/80030528

将高频加强和直方图均衡相结合是得到边缘锐化和对比度增强的有效方法。应先进行高频加强,再进行直方图均衡化

高频加强是针对通过高通滤波后的图像整体偏暗,因此通过提高平均灰度的亮度,使图像的视觉鉴别能力提高。再通过直方图均衡化将图像的窄带动态范围变为宽带动态范围,从而达到提高对比度的效果。若先进行直方图均衡化,再进行高频加强,对于图像亮度呈现较强的两极现象时,例如多数像素主要分布在极暗区域,而少数像素存在于极亮区域时,先直方图均衡化会导致图像被漂白,再进行高频加强,获得的图像边缘不突出,图像的对比度较差。

(0)

相关推荐