空域&频域滤波

  1. 空域平滑

(1)高斯滤波

import cv2 as cv
import numpy as np
img = cv.imread("lena512color.jpg",1)
cv.imshow("img",img)
cv.waitKey(0)
kernel = cv.getGaussianKernel(3,0)
print((kernel))
# """【函数描述】用于计算一维高斯函数的模板系数
# 	【参数描述】n     — 模板尺寸,n必须为大于0的正整数,一般取n为奇数,但是通
# 	                        过源代码分析可以知道,取n为偶数,同样可以计算得到对
# 	                        应结果。
# 	           sigma — 高斯标准差(公式中的σ),如果sigma取小于等于0的数,则
# 	                        函数根据当前n值计算对应的sigma值,
# 	                                       sigma = ((n-1)*0.5 – 1)*0.3 + 0.8。
# 	           ktype — 数据类型,CV_32F或者CV_64F
# 	【返回值】 返回n行1列归一化的一维高斯系数
# """
Gaussfilter_img = cv.filter2D(img,-1,kernel)
cv.imshow("GaussFilter",Gaussfilter_img)
cv.waitKey(0)

 

(2)均值滤波Blur

(3)中值滤波

  • 空域锐化

1.Laplace先使用Laplacian函数获得梯度图,然后使用convertScaleAbs函数取绝对值

2.SobelSobel

  • 频域平滑

1.低通滤波

1)初始化全0掩模mask=np.zeros(img.shape,np.uint8)

2)将掩模中心置1r=int(rows/2)c=int(cols/2)mask[r-radius:r+radius,c-radius:c+radius]=1

3)将图像从空域转换到频域

f1=np.fft.fft2(img)

f1shift=np.fft.ffshift(f1)

4)乘上掩模,即滤去高频分量,保留低频分

f1shift=f1shift*mask

5)进行逆变换

f2shift = np.fft.ifftshift(f1shift)

img_new = np.fft.ifft2(f2shift)

6)进行处理,调整大小,获得最终结果

 

  • 频域锐化
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值