日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

第5章 Python 数字图像处理(DIP) - 图像复原与重建16 - 约束最小二乘方滤波、几何均值滤波

發(fā)布時(shí)間:2023/12/10 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第5章 Python 数字图像处理(DIP) - 图像复原与重建16 - 约束最小二乘方滤波、几何均值滤波 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

標(biāo)題

    • 約束最小二乘方濾波
    • 幾何均值濾波

約束最小二乘方濾波

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)為函數(shù)p(x,y)=[0?10?14?10?10]P(u,v) 為函數(shù) p(x, y) = \begin {bmatrix}0 & -1 & 0 \\ -1 & 4 & -1 \\ 0 & -1 & 0 \end {bmatrix}P(u,v)數(shù)p(x,y)=???0?10??14?1?0?10????的傅里葉變換

我們認(rèn)為這個(gè)函數(shù)是一個(gè)拉普拉斯核,注意式中在γ=0\gamma = 0γ=0時(shí)會(huì)簡(jiǎn)化為逆濾波。

函數(shù)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)的偶對(duì)稱, MMMNNN必須是偶整數(shù)。如果由其獲得HHH的一幅已知退化圖像不是偶數(shù)維的,則在計(jì)算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問(wèn)題:為什么改變gamma值結(jié)果也沒(méi)有變化,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αβ 是非負(fù)的實(shí)常數(shù)。

當(dāng)α=1\alpha=1α=1時(shí),幾何均值濾波器簡(jiǎn)化為逆濾波器;當(dāng)α=0\alpha=0α=0時(shí),幾何均值濾波器變?yōu)?strong>參數(shù)維納濾波器,參數(shù)維納濾波器在β=1\beta=1β=1時(shí)簡(jiǎn)化為標(biāo)準(zhǔn)維納濾波器;當(dāng)α=1/2\alpha=1/2α=1/2時(shí)幾何均值濾波器變成冪次相同的兩個(gè)量的乘積,這就是幾何均值的定義。

β=1\beta=1β=1α\alphaα大于1/2時(shí),濾波器更的性能更像逆濾波器。
α\alphaα 小于1/2時(shí),濾波器的性能更像維納濾波器。
α\alphaα 等于1/2且β=1\beta=1β=1時(shí),濾波器通常稱為頻譜均衡濾波器。

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()

總結(jié)

以上是生活随笔為你收集整理的第5章 Python 数字图像处理(DIP) - 图像复原与重建16 - 约束最小二乘方滤波、几何均值滤波的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。