第5章 Python 数字图像处理(DIP) - 图像复原与重建16 - 约束最小二乘方滤波、几何均值滤波
标题
- 约束最小二乘方滤波
- 几何均值滤波
约束最小二乘方滤波
F^(u,v)=[H∗(u,v)∣H(u,v)∣2+γ∣P(u,v)∣2]G(u,v)(5.89)\hat{F}(u,v) = \bigg[\frac{H^*(u,v)}{|H(u,v)|^2 + \gamma |P(u,v)|^2} \bigg]G(u,v) \tag{5.89}F^(u,v)=[∣H(u,v)∣2+γ∣P(u,v)∣2H∗(u,v)]G(u,v)(5.89)
P(u,v)为函数p(x,y)=[0−10−14−10−10]P(u,v) 为函数 p(x, y) = \begin {bmatrix}0 & -1 & 0 \\ -1 & 4 & -1 \\ 0 & -1 & 0 \end {bmatrix}P(u,v)为函数p(x,y)=⎣⎡0−10−14−10−10⎦⎤的傅里叶变换
我们认为这个函数是一个拉普拉斯核,注意式中在γ=0\gamma = 0γ=0时会简化为逆滤波。
函数P(u,v)和H(u,v)P(u,v)和H(u,v)P(u,v)和H(u,v)的大小必须相同。意味着p(x,y)p(x,y)p(x,y)必须嵌入MMM x NNN 零阵列的中心。为保持p(x,y)p(x,y)p(x,y)的偶对称, MMM 和 NNN必须是偶整数。如果由其获得HHH的一幅已知退化图像不是偶数维的,则在计算HHH之前需要酌情删除一行和/或一行,以便可以使用
2021-21-16 update, Thanks to fans id is ‘weixin_42674476’。
def get_puv(image):h, w = image.shape[:2]h_pad, w_pad = h - 3, w - 3p_xy = np.array([[0, -1, 0],[-1, 4, -1],[0, -1, 0]])p_pad = np.pad(p_xy, ((h_pad//2, h_pad - h_pad//2), (w_pad//2, w_pad - w_pad//2)), mode='constant')p_uv = np.fft.fft2(p_pad)return p_uv
def least_square_filter(image, PSF, eps, gamma=0.01):"""least square filter for image denoise, math: $$\hat{F}(u,v) = \bigg[\frac{H^*(u,v)}{|H(u,v)|^2 + \gamma |P(u,v)|^2} \bigg]G(u,v)$$param: image: input imageparam: PSF: input the PSF maskparam: eps: epsilonparam: gamma: gamma value for least square filter fuctionreturn image after least square filter问题:为什么改变gamma值结果也没有变化,sorted 2021-12-16"""fft = np.fft.fft2(image)PSF_fft = np.fft.fft2(PSF)conj = PSF_fft.conj()p_uv = get_puv(image)abs_conj = np.abs(PSF_fft) ** 2# abs_conj = (PSF_fft * conj).realhuv = conj / (abs_conj + gamma * (np.abs(p_uv) ** 2))result = np.fft.ifft2(fft * huv)result = np.abs(np.fft.fftshift(result))return result, abs_conj
# 约束最小二乘方滤波
image = cv2.imread("DIP_Figures/DIP3E_Original_Images_CH05/Fig0526(a)(original_DIP).tif", 0)
PSF = get_motion_dsf(image.shape[:2], -50, 100)
blurred = make_blurred(image, PSF, 1e-5)wiener = wiener_filter(blurred, PSF, 1e-5, K=0.03)
least_square, abs_con = least_square_filter(blurred, PSF, 1e-5, gamma=1e-6)
least_square = np.uint8(normalize(least_square) * 255)img_diff = image - least_square
plt.figure(figsize=(15, 5))
plt.subplot(131), plt.imshow(blurred, 'gray'), plt.title("Motion blurred"), plt.xticks([]), plt.yticks([])
plt.subplot(132), plt.imshow(wiener, 'gray'), plt.title("Wiener Filter"), plt.xticks([]), plt.yticks([])
plt.subplot(133), plt.imshow(least_square, 'gray'), plt.title("Least Square Filter"), plt.xticks([]), plt.yticks([])
plt.tight_layout()
plt.show()
几何均值滤波
F^(u,v)=[H∗(u,v)∣H(u,v)∣2]α[H∗(u,v)∣H(u,v)∣2+β[Sη(u,v)Sf(u,v)]]1−αG(u,v)(5.99)\hat{F}(u,v) = \bigg[\frac{H^*(u,v)}{|H(u,v)|^2}\bigg]^\alpha \Bigg[\frac{H^*(u,v)}{|H(u,v)|^2 + \beta \big[\frac{S_{\eta}(u,v)}{S_f(u,v)} \big]}\Bigg]^{1-\alpha} G(u, v) \tag{5.99}F^(u,v)=[∣H(u,v)∣2H∗(u,v)]α[∣H(u,v)∣2+β[Sf(u,v)Sη(u,v)]H∗(u,v)]1−αG(u,v)(5.99)
α和β\alpha 和 \betaα和β 是非负的实常数。
当α=1\alpha=1α=1时,几何均值滤波器简化为逆滤波器;当α=0\alpha=0α=0时,几何均值滤波器变为参数维纳滤波器,参数维纳滤波器在β=1\beta=1β=1时简化为标准维纳滤波器;当α=1/2\alpha=1/2α=1/2时几何均值滤波器变成幂次相同的两个量的乘积,这就是几何均值的定义。
β=1\beta=1β=1而α\alphaα大于1/2时,滤波器更的性能更像逆滤波器。
α\alphaα 小于1/2时,滤波器的性能更像维纳滤波器。
α\alphaα 等于1/2且β=1\beta=1β=1时,滤波器通常称为频谱均衡滤波器。
def geometric_mean_filter(image, PSF, eps, K=1, alpha=1, beta=1):"""geometric mean filter for image denoise, math: $$\hat{F}(u,v) = \bigg[\frac{H^*(u,v)}{|H(u,v)|^2}\bigg]^\alpha \Bigg[\frac{H^*(u,v)}{|H(u,v)|^2 + \beta \big[\frac{S_{\eta}(u,v)}{S_f(u,v)} \big]}\Bigg]^{1-\alpha} G(u, v) $$param: image: input imageparam: PSF : input the PSF maskparam: eps : epsilonparam: K : K equal to math: \frac{S_{\eta}(u,v)}{S_f(u,v)}param: alpha: alpha value for filter fuctionparam: beta : beta value for the filter fuctionreturn image after least square filter"""fft = np.fft.fft2(image)PSF_fft = np.fft.fft2(PSF)conj = PSF_fft.conj()abs_square = (PSF_fft * conj).realhuv = np.power(conj / (abs_square), alpha) * np.power(conj / (abs_square + beta*(K)), 1 - alpha)result = np.fft.ifft2(fft * huv)result = np.abs(np.fft.fftshift(result))return result
#### 几何均值滤波器
image = cv2.imread("DIP_Figures/DIP3E_Original_Images_CH05/Fig0526(a)(original_DIP).tif", 0)
PSF = get_motion_dsf(image.shape[:2], -50, 100)
blurred = make_blurred(image, PSF, 1e-5)wiener = wiener_filter(blurred, PSF, 1e-5, K=0.03)
geometric_mean = geometric_mean_filter(blurred, PSF, 1e-5, K=1, alpha=1/2, beta=0)
geometric_mean = np.uint8(normalize(geometric_mean) * 255)plt.figure(figsize=(14, 5))
plt.subplot(131), plt.imshow(blurred, 'gray'), plt.title("Motion blurred"), plt.xticks([]), plt.yticks([])
plt.subplot(132), plt.imshow(wiener, 'gray'), plt.title("Wiener Filter"), plt.xticks([]), plt.yticks([])
plt.subplot(133), plt.imshow(geometric_mean, 'gray'), plt.title("Geometric mean Filter"), plt.xticks([]), plt.yticks([])
plt.tight_layout()
plt.show()
第5章 Python 数字图像处理(DIP) - 图像复原与重建16 - 约束最小二乘方滤波、几何均值滤波相关推荐
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建1 - 高斯噪声
本章主要讲图像复原与重建,首先是了解一下各种噪声的特点与模型,还有形成的方法.一些重点的噪声,如高斯噪声,均匀噪声,伽马噪声,指数噪声,还有椒盐噪声等. 本章主要的噪声研究方法主要是加性噪声. 标题 ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建12 - 空间滤波 - 使用频率域滤波降低周期噪声 - 陷波滤波、最优陷波滤波
标题 使用频率域滤波降低周期噪声 陷波滤波深入介绍 最优陷波滤波 本章陷波滤波器有部分得出的结果不佳,如果有更好的解决方案,请赐教,不胜感激. 使用频率域滤波降低周期噪声 陷波滤波深入介绍 零相移滤波 ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建17 - 由投影重建图像、雷登变换、投影、反投影、反投影重建
标题 由投影重建图像 投影和雷登变换 Johann Radon 反投影 滤波反投影重建 由投影重建图像 本由投影重建图像,主要是雷登变换与雷登把变换的应用,所以也没有太多的研究,只为了保持完整性,而添 ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建15 - 最小均方误差(维纳)滤波
标题 最小均方误差(维纳)滤波 最小均方误差(维纳)滤波 目标是求未污染图像fff的一个估计f^\hat{f}f^,使它们之间的均方误差最小. e2=E{(f−f^)2}(5.80)e^2 = E ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建14 - 逆滤波
标题 逆滤波 逆滤波 逆滤波 逆滤波 图像的退化函数已知或者由前面的方法获取退化函数,则可以直接逆滤波 F^(u,v)=G(u,v)H(u,v)(5.78)\hat{F}(u,v) = \frac{G ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建13 - 空间滤波 - 线性位置不变退化 - 退化函数估计、运动模糊函数
标题 线性位置不变退化 估计退化函数 采用观察法估计退化函数 采用试验法估计退化函数 采用建模法估计退化函数 运动模糊函数 OpenCV Motion Blur 在这一节中,得到的结果,有些不是很好, ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建11 - 空间滤波 - 自适应滤波器 - 自适应局部降噪、自适应中值滤波器
标题 自适应滤波器 自适应局部降噪滤波器 自适应中值滤波器 自适应滤波器 自适应局部降噪滤波器 均值是计算平均值的区域上的平均灰度,方差是该区域上的图像对比度 g(x,y)g(x, y)g(x,y)噪 ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建10 - 空间滤波 - 统计排序滤波器 - 中值、最大值、最小值、中点、修正阿尔法均值滤波器
标题 统计排序滤波器 中值.最大值.最小值.中点 滤波器 修正阿尔法均值滤波器 统计排序滤波器 中值.最大值.最小值.中点 滤波器 f^(x,y)=median{g(r,c)}(5.27)\hat{f ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建9 - 空间滤波 - 均值滤波器 - 算术平均、几何平均、谐波平均、反谐波平均滤波器
标题 只存在噪声的复原 - 空间滤波 均值滤波器 算术平均滤波器 几何均值滤波器 谐波平均滤波器 反(逆)谐波平均滤波器 只存在噪声的复原 - 空间滤波 仅被加性噪声退化 g(x,y)=f(x,y)+ ...
最新文章
- SDUTOJ3771_数组计算机(线段树)
- python常用指令速查
- 观察者模式——解耦利器
- CodeForces - 1311F Moving Points(线段树+离散化)
- dyld: Library not loaded: @rpath/libswiftCore.dylib 解决方法
- Chart/Report资源目录
- Bootstrap翻页组件
- spring boot 处理自定义注解
- violate、内存屏障
- 用latex生成pdf文件后,文本复制粘贴显示乱码
- 前端性能优化方法总结
- html中字号的标签是什么,htmlfont标签是什么?font标签的属性的详细介绍
- 人脸识别闸机系统解决方案
- SSID,BSSID,ESSID 区别介绍
- 【阿里内推一面】记我人生中的处女面
- position: sticky 属性
- 医疗项目 01(项目简介)
- 亿愿Word文档批量多语言翻译---word文档翻译专家!几十种语言随意快速互译!可以生成中外文,中英文对照内容文档!
- C语言:有一个一维数组score,内放10个学生成绩,求平均成绩。
- 网易2018校园招聘:合唱 [python]