200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 数字图像处理-频域滤波-高通/低通滤波

数字图像处理-频域滤波-高通/低通滤波

时间:2018-08-09 03:48:58

相关推荐

数字图像处理-频域滤波-高通/低通滤波

频域滤波

频域滤波是在频率域对图像做处理的一种方法。步骤如下:

滤波器大小和频谱大小相同,相乘即可得到新的频谱。

滤波后结果显示,低通滤波去掉了高频信息,即细节信息,留下的低频信息代表了概貌。常用的例子,比如美图秀秀的磨皮,去掉了脸部细节信息(痘坑,痘印,暗斑等)。高通滤波则相反。

高通/低通滤波

1.理想的高/低通滤波

顾名思义,高通滤波器为:让高频信息通过,过滤低频信息;低通滤波相反。

理想的低通滤波器模板为:

其中,D0表示通带半径,D(u,v)是到频谱中心的距离(欧式距离),计算公式如下:

M和N表示频谱图像的大小,(M/2,N/2)即为频谱中心

理想的高通滤波器与此相反,1减去低通滤波模板即可。

部分代码:

# 定义函数,显示滤波器模板def showTemplate(template):temp = np.uint8(template*255)cv2.imshow('Template', temp)return# 定义函数,显示滤波函数def showFunction(template):row, col = template.shaperow = np.uint16(row/2)col = np.uint16(col/2)y = template[row, col:]x = np.arange(len(y))plt.plot(x, y, 'b-', linewidth=2)plt.axis([0, len(x), -0.2, 1.2])plt.show()return# 定义函数,理想的低通/高通滤波模板def Ideal(src, d0, ftype):template = np.zeros(src.shape, dtype=np.float32) # 构建滤波器r, c = src.shapefor i in range(r):for j in range(c):distance = np.sqrt((i - r/2)**2 + (j - c/2)**2)if distance < d0:template[i, j] = 1else:template[i, j] = 0if ftype == 'high':template = 1 - templatereturn template

Ideal

2. Butterworth高/低通滤波

Butterworth低通滤波器函数为:

从函数图上看,更圆滑,用幂系数n可以改变滤波器的形状。n越大,则该滤波器越接近于理想滤波器

1减去低通滤波模板即可得到高通滤波模板

部分代码:

# 定义函数,巴特沃斯高/低通滤波模板def Butterworth(src, d0, n, ftype):template = np.zeros(src.shape, dtype=np.float32) # 构建滤波器r, c = src.shapefor i in np.arange(r):for j in np.arange(c):distance = np.sqrt((i - r/2)**2 + (j - c/2)**2)template[i, j] = 1/(1 + (distance/d0)**(2*n)) # Butterworth 滤波函数template[i, j] = np.e ** (-1 * (distance**2 / (2 * d0**2))) # Gaussian滤波函数if ftype == 'high':template = 1 - templatereturn template

Butterworth

3. Gaussian高/低通滤波

Guassian低通滤波器函数为:

1减去低通滤波模板即可得到高通滤波模板

部分代码:

# 定义函数,高斯高/低通滤波模板def Gaussian(src, d0, ftype):template = np.zeros(src.shape, dtype=np.float32) # 构建滤波器r, c = src.shapefor i in np.arange(r):for j in np.arange(c):distance = np.sqrt((i - r / 2) ** 2 + (j - c / 2) ** 2)template[i, j] = np.e ** (-1 * (distance ** 2 / (2 * d0 ** 2))) # Gaussian滤波函数if ftype == 'high':template = 1 - templatereturn template

Gaussian

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。