日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

第5章 Python 数字图像处理(DIP) - 图像复原与重建12 - 空间滤波 - 使用频率域滤波降低周期噪声 - 陷波滤波、最优陷波滤波

發布時間:2023/12/10 python 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第5章 Python 数字图像处理(DIP) - 图像复原与重建12 - 空间滤波 - 使用频率域滤波降低周期噪声 - 陷波滤波、最优陷波滤波 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

標題

    • 使用頻率域濾波降低周期噪聲
      • 陷波濾波深入介紹
      • 最優陷波濾波

本章陷波濾波器有部分得出的結果不佳,如果有更好的解決方案,請賜教,不勝感激。

使用頻率域濾波降低周期噪聲

陷波濾波深入介紹

零相移濾波器必須關于原點(頻率矩形中心)對稱,中以為(u0,v0)(u_0, v_0)(u0?,v0?)的陷波濾波器傳遞函數在(?u0,?v0)(-u_0, -v_0)(?u0?,?v0?)位置必須有一個對應的陷波。陷波帶阻濾波器傳遞函數可用中心被平移到陷波濾波中心的高通濾波器函數的乘積來產生

HNR(u,v)=∏k=1QHk(u,v)H?k(u,v)(5.33)H_{NR}(u, v) = \prod_{k=1}^Q H_k(u, v) H_{-k}(u, v) \tag{5.33}HNR?(u,v)=k=1Q?Hk?(u,v)H?k?(u,v)(5.33)

每個濾波器的距離計算公式為
Dk(u,v)=[(u?M/2?uk)2+(v?N/2?vk)2]1/2(5.34)D_{k}(u, v) = \big[(u - M / 2 - u_{k})^2 + (v - N / 2 - v_{k})^2 \big]^{1/2} \tag{5.34}Dk?(u,v)=[(u?M/2?uk?)2+(v?N/2?vk?)2]1/2(5.34)
D?k(u,v)=[(u?M/2+uk)2+(v?N/2+vk)2]1/2(5.35)D_{-k}(u, v) = \big[(u - M / 2 + u_{k})^2 + (v - N / 2 + v_{k})^2 \big]^{1/2} \tag{5.35}D?k?(u,v)=[(u?M/2+uk?)2+(v?N/2+vk?)2]1/2(5.35)

3個nnn階巴特沃斯帶阻濾波器
HNR(u,v)=∏k=13[11+[D0k/Dk(u,v)]n][11+[D0k/D?k(u,v)]n](5.36)H_{NR}(u, v) = \prod_{k=1}^3\bigg[ \frac{1}{1 + [D_{0k}/D_{k}(u,v)]^n} \bigg] \bigg[ \frac{1}{1 + [D_{0k}/D_{-k}(u,v)]^n} \bigg] \tag{5.36}HNR?(u,v)=k=13?[1+[D0k?/Dk?(u,v)]n1?][1+[D0k?/D?k?(u,v)]n1?](5.36)

常數D0kD_{0k}D0k?對每對陷波是相同的,但對不同的陷波對,它可以不同。

陷波帶通濾波器傳遞函數可用陷波帶阻濾波器得到
HNP(u,v)=1?HNR(u,v)(5.37)H_{NP}(u, v) = 1 - H_{NR}(u, v) \tag{5.37}HNP?(u,v)=1?HNR?(u,v)(5.37)

def butterworth_notch_resistant_filter(img, uk, vk, radius=10, n=1):"""create butterworth notch resistant filter, equation 4.155param: img: input, source imageparam: uk: input, int, center of the heightparam: vk: input, int, center of the widthparam: radius: input, int, the radius of circle of the band pass filter, default is 10param: w: input, int, the width of the band of the filter, default is 5param: n: input, int, order of the butter worth fuction, return a [0, 1] value butterworth band resistant filter""" M, N = img.shape[1], img.shape[0]u = np.arange(M)v = np.arange(N)u, v = np.meshgrid(u, v)DK = np.sqrt((u - M//2 - uk)**2 + (v - N//2 - vk)**2)D_K = np.sqrt((u - M//2 + uk)**2 + (v - N//2 + vk)**2)D0 = radiuskernel = (1 / (1 + (D0 / (DK+1e-5))**n)) * (1 / (1 + (D0 / (D_K+1e-5))**n))return kernel def idea_notch_resistant_filter(source, uk, vk, radius=5):"""create idea notch resistant filter param: source: input, source imageparam: uk: input, int, center of the heightparam: vk: input, int, center of the widthparam: radius: input, the radius of the lowest value, greater value, bigger blocker out range, if the radius is 0, then allvalue is 0return a [0, 1] value filter"""M, N = source.shape[1], source.shape[0]u = np.arange(M)v = np.arange(N)u, v = np.meshgrid(u, v)DK = np.sqrt((u - M//2 - uk)**2 + (v - N//2 - vk)**2)D_K = np.sqrt((u - M//2 + uk)**2 + (v - N//2 + vk)**2)D0 = radiusk_1 = DK.copy()k_2 = D_K.copy()k_1[DK > D0] = 1k_1[DK <= D0] = 0k_2[D_K > D0] = 1k_2[D_K <= D0] = 0kernel = k_1 * k_2return kernel def gauss_notch_resistant_filter(source, uk, vk, radius=5):"""create gauss low pass filter param: source: input, source imageparam: uk: input, int, center of the heightparam: vk: input, int, center of the widthparam: radius: input, the radius of the lowest value, greater value, bigger blocker out range, if the radius is 0, then allvalue is 0return a [0, 1] value filter""" M, N = source.shape[1], source.shape[0]u = np.arange(M)v = np.arange(N)u, v = np.meshgrid(u, v)DK = np.sqrt((u - M//2 - uk)**2 + (v - N//2 - vk)**2)D_K = np.sqrt((u - M//2 + uk)**2 + (v - N//2 + vk)**2)D0 = radiusk_1 = 1 - np.exp(- (DK**2)/(D0**2)) k_2 = 1 - np.exp(- (D_K**2)/(D0**2)) kernel = k_1 * k_2return kernel def plot_3d(ax, x, y, z, cmap):ax.plot_surface(x, y, z, antialiased=True, shade=True, cmap=cmap)ax.view_init(20, -20), ax.grid(b=False), ax.set_xticks([]), ax.set_yticks([]), ax.set_zticks([]) # 理想、高斯、巴特沃斯陷波濾波器 from mpl_toolkits.mplot3d import Axes3D import numpy as np from matplotlib import pyplot as plt from matplotlib import cmimg_temp = np.zeros([256, 256])INRF = idea_notch_resistant_filter(img_temp, radius=20, uk=30, vk=80) GNRF = gauss_notch_resistant_filter(img_temp, radius=20, uk=30, vk=80) BNRF = butterworth_notch_resistant_filter(img_temp, radius=20, uk=30, vk=80, n=5)# 用來繪制3D圖 M, N = img_temp.shape[1], img_temp.shape[0] u = np.arange(M) v = np.arange(N) u, v = np.meshgrid(u, v)fig = plt.figure(figsize=(21, 7)) ax_1 = fig.add_subplot(1, 3, 1, projection='3d') plot_3d(ax_1, u, v, INRF, cmap=cm.plasma)ax_1 = fig.add_subplot(1, 3, 2, projection='3d') plot_3d(ax_1, u, v, GNRF, cmap=cm.PiYG)ax_1 = fig.add_subplot(1, 3, 3, projection='3d') plot_3d(ax_1, u, v, BNRF, cmap=cm.PiYG) plt.tight_layout() plt.show()

def centralized_2d(arr):"""centralized 2d array $f(x, y) (-1)^{x + y}$, about 4.5 times faster than index, 160 times faster than loop,"""def get_1_minus1(img):"""get 1 when image index is even, -1 while index is odd, same shape as input image, need this array to multiply with input imageto get centralized image for DFTParameter: img: input, here we only need img shape to create the arrayreturn such a [[1, -1, 1], [-1, 1, -1]] array, example is 3x3"""dst = np.ones(img.shape)dst[1::2, ::2] = -1dst[::2, 1::2] = -1return dst#==================中心化=============================mask = get_1_minus1(arr)dst = arr * maskreturn dst def pad_image(img, mode='constant'):"""pad image into PxQ shape, orginal is in the top left corner.param: img: input imageparam: mode: input, str, is numpy pad parameter, default is 'constant'. for more detail please refere to Numpy padreturn PxQ shape image padded with zeros or other values"""dst = np.pad(img, ((0, img.shape[0]), (0, img.shape[1])), mode=mode)return dst def add_sin_noise(img, scale=1, angle=0):"""add sin noise for imageparam: img: input image, 1 channel, dtype=uint8param: scale: sin scaler, smaller than 1, will enlarge, bigger than 1 will shrinkparam: angle: angle of the rotationreturn: output_img: output image is [0, 1] image which you could use as mask or any you want to"""height, width = img.shape[:2] # original image shape# convert all the angleif int(angle / 90) % 2 == 0:rotate_angle = angle % 90else:rotate_angle = 90 - (angle % 90)rotate_radian = np.radians(rotate_angle) # convert angle to radian# get new image height and widthnew_height = int(np.ceil(height * np.cos(rotate_radian) + width * np.sin(rotate_radian)))new_width = int(np.ceil(width * np.cos(rotate_radian) + height * np.sin(rotate_radian))) # if new height or new width less than orginal height or width, the output image will be not the same shape as input, here set it rightif new_height < height:new_height = heightif new_width < width:new_width = width# meshgridu = np.arange(new_width)v = np.arange(new_height)u, v = np.meshgrid(u, v)# get sin noise image, you could use scale to make some difference, better you could add some shift # noise = abs(np.sin(u * scale))noise = 1 - np.sin(u * scale)# here use opencv to get rotation, better write yourself rotation functionC1 = cv2.getRotationMatrix2D((new_width/2.0, new_height/2.0), angle, 1)new_img = cv2.warpAffine(noise, C1, (int(new_width), int(new_height)), borderValue=0)# ouput image should be the same shape as input, so caculate the offset the output image and the new image# I make new image bigger so that it will cover all output imageoffset_height = abs(new_height - height) // 2offset_width = abs(new_width - width) // 2img_dst = new_img[offset_height:offset_height + height, offset_width:offset_width+width]output_img = normalize(img_dst)return output_img def spectrum_fft(fft):"""return FFT spectrum"""return np.sqrt(np.power(fft.real, 2) + np.power(fft.imag, 2)) # 陷波濾波器處理周期噪聲 img_ori = cv2.imread('DIP_Figures/DIP3E_Original_Images_CH05/Fig0507(a)(ckt-board-orig).tif', 0) #直接讀為灰度圖像# 正弦噪聲 noise = add_sin_noise(img_ori, scale=0.35, angle=-20) img = np.array(img_ori / 255, np.float32) img_noise = img + noise img_noise = np.uint8(normalize(img_noise)*255)# 頻率域中的其他特性 # FFT img_fft = np.fft.fft2(img_noise.astype(np.float32)) # 中心化 fshift = np.fft.fftshift(img_fft) # 將變換的頻率圖像四角移動到中心 # 中心化后的頻譜 spectrum_fshift = spectrum_fft(fshift) spectrum_fshift_n = np.uint8(normalize(spectrum_fshift) * 255)# 對頻譜做對數變換 spectrum_log = np.log(1 + spectrum_fshift)BNRF = butterworth_notch_resistant_filter(img_ori, radius=5, uk=25, vk=10, n=4)f1shift = fshift * (BNRF) f2shift = np.fft.ifftshift(f1shift) #對新的進行逆變換 img_new = np.fft.ifft2(f2shift) img_new = np.abs(img_new)plt.figure(figsize=(15, 15)) plt.subplot(221), plt.imshow(img_noise, 'gray'), plt.title('With Sine noise'), plt.xticks([]),plt.yticks([]) plt.subplot(222), plt.imshow(spectrum_log, 'gray'), plt.title('Spectrum'), plt.xticks([]),plt.yticks([]) # 在圖像上加上箭頭 plt.arrow(180, 180, 25, 30, width=5,length_includes_head=True, shape='full') plt.arrow(285, 265, -25, -30, width=5,length_includes_head=True, shape='full')plt.subplot(223), plt.imshow(BNRF, 'gray'), plt.title('Spectrum'), plt.xticks([]),plt.yticks([]) # 在圖像上加上箭頭 plt.arrow(180, 180, 25, 30, width=5,length_includes_head=True, shape='full') plt.arrow(285, 265, -25, -30, width=5,length_includes_head=True, shape='full')plt.subplot(224), plt.imshow(img_new, 'gray'), plt.title('Spectrum'), plt.xticks([]),plt.yticks([])plt.tight_layout() plt.show()

# 陷波濾波器提取周期噪聲 img_ori = cv2.imread('DIP_Figures/DIP3E_Original_Images_CH05/Fig0507(a)(ckt-board-orig).tif', 0) #直接讀為灰度圖像# 正弦噪聲 noise = add_sin_noise(img_ori, scale=0.35, angle=-20) img = np.array(img_ori / 255, np.float32) img_noise = img + noise img_noise = np.uint8(normalize(img_noise)*255)# 頻率域中的其他特性 # FFT img_fft = np.fft.fft2(img_noise.astype(np.float32)) # 中心化 fshift = np.fft.fftshift(img_fft) # 將變換的頻率圖像四角移動到中心 # 中心化后的頻譜 spectrum_fshift = spectrum_fft(fshift) spectrum_fshift_n = np.uint8(normalize(spectrum_fshift) * 255)# 對頻譜做對數變換 spectrum_log = np.log(1 + spectrum_fshift)BNRF = 1 - butterworth_notch_resistant_filter(img_ori, radius=5, uk=25, vk=10, n=4)f1shift = fshift * (BNRF) f2shift = np.fft.ifftshift(f1shift) #對新的進行逆變換 img_new = np.fft.ifft2(f2shift) img_new = np.abs(img_new)plt.figure(figsize=(15, 15)) # plt.subplot(221), plt.imshow(img_noise, 'gray'), plt.title('With Sine noise'), plt.xticks([]),plt.yticks([]) # plt.subplot(222), plt.imshow(spectrum_log, 'gray'), plt.title('Spectrum'), plt.xticks([]),plt.yticks([]) # # 在圖像上加上箭頭 # plt.arrow(180, 180, 25, 30, width=5,length_includes_head=True, shape='full') # plt.arrow(285, 265, -25, -30, width=5,length_includes_head=True, shape='full')# plt.subplot(223), plt.imshow(BNRF, 'gray'), plt.title('Spectrum'), plt.xticks([]),plt.yticks([]) # # 在圖像上加上箭頭 # plt.arrow(180, 180, 25, 30, width=5,length_includes_head=True, shape='full') # plt.arrow(285, 265, -25, -30, width=5,length_includes_head=True, shape='full')plt.subplot(224), plt.imshow(img_new, 'gray'), plt.title('Sine pattern'), plt.xticks([]),plt.yticks([])plt.tight_layout() plt.show()

def butterworth_band_resistant_filter(source, center, radius=10, w=5, n=1):"""create butterworth band resistant filter, equation 4.150param: source: input, source imageparam: center: input, the center of the filter, where is the lowest value, (0, 0) is top left corner, source.shape[:2] is center of the source imageparam: radius: input, int, the radius of circle of the band pass filter, default is 10param: w: input, int, the width of the band of the filter, default is 5param: n: input, int, order of the butter worth fuction, return a [0, 1] value butterworth band resistant filter""" epsilon = 1e-8N, M = source.shape[:2]u = np.arange(M)v = np.arange(N)u, v = np.meshgrid(u, v)D = np.sqrt((u - center[1]//2)**2 + (v - center[0]//2)**2)C0 = radiustemp = (D * w) / ((D**2 - C0**2) + epsilon)kernel = 1 / (1 + temp ** (2*n)) return kerneldef butterworth_low_pass_filter(img, center, radius=5, n=1):"""create butterworth low pass filter param: source: input, source imageparam: center: input, the center of the filter, where is the lowest value, (0, 0) is top left corner, source.shape[:2] is center of the source imageparam: radius: input, the radius of the lowest value, greater value, bigger blocker out range, if the radius is 0, then allvalue is 0param: n: input, float, the order of the filter, if n is small, then the BLPF will be close to GLPF, and more smooth from lowfrequency to high freqency.if n is large, will close to ILPFreturn a [0, 1] value filter""" epsilon = 1e-8M, N = img.shape[1], img.shape[0]u = np.arange(M)v = np.arange(N)u, v = np.meshgrid(u, v)D = np.sqrt((u - center[1]//2)**2 + (v - center[0]//2)**2)D0 = radiuskernel = (1 / (1 + (D / (D0 + epsilon))**(2*n)))return kernel # 陷波濾波器處理周期噪聲,用巴特沃斯低通濾波器得到的效果比目前的陷波濾波器效果還要好 img_ori = cv2.imread('DIP_Figures/DIP3E_Original_Images_CH05/Fig0516(a)(applo17_boulder_noisy).tif', 0) M, N = img_ori.shape[:2]fp = pad_image(img_ori, mode='reflect') fp_cen = centralized_2d(fp) fft = np.fft.fft2(fp_cen)# 中心化后的頻譜 spectrum_fshift = spectrum_fft(fft) spectrum_log = np.log(1 + spectrum_fshift)# 濾波器 n = 15 r = 20 H = butterworth_low_pass_filter(fp, fp.shape, radius=100, n=4) # BNRF_1 = butterworth_notch_resistant_filter(fp, radius=r, uk=355, vk=0, n=n) # BNRF_2 = butterworth_notch_resistant_filter(fp, radius=r, uk=0, vk=355, n=n) # BNRF_3 = butterworth_notch_resistant_filter(fp, radius=r, uk=250, vk=250, n=n) # BNRF_4 = butterworth_notch_resistant_filter(fp, radius=r, uk=-250, vk=250, n=n) # BNRF = BNRF_1 * BNRF_2 * BNRF_3 * BNRF_4 * H BNRF = Hfft_filter = fft * BNRF# 濾波后的頻譜 spectrum_filter = spectrum_fft(fft_filter) spectrum_filter_log = np.log(1 + spectrum_filter)# 傅里葉反變換 ifft = np.fft.ifft2(fft_filter)# 去中心化反變換的圖像,并取左上角的圖像 img_new = centralized_2d(ifft.real)[:M, :N] img_new = np.clip(img_new, 0, img_new.max()) img_new = np.uint8(normalize(img_new) * 255)plt.figure(figsize=(15, 12)) plt.subplot(221), plt.imshow(img_ori, 'gray'), plt.title('With noise'), plt.xticks([]),plt.yticks([]) plt.subplot(222), plt.imshow(spectrum_log, 'gray'), plt.title('Spectrum'), plt.xticks([]),plt.yticks([]) plt.subplot(223), plt.imshow(spectrum_filter_log, 'gray'), plt.title('Spectrum With Filter'), plt.xticks([]),plt.yticks([]) plt.subplot(224), plt.imshow(img_new, 'gray'), plt.title('IDFT'), plt.xticks([]),plt.yticks([]) plt.tight_layout() plt.show()

# 陷波濾波器提取周期噪聲 img_ori = cv2.imread('DIP_Figures/DIP3E_Original_Images_CH05/Fig0516(a)(applo17_boulder_noisy).tif', 0) M, N = img_ori.shape[:2]fp = pad_image(img_ori, mode='constant') fp_cen = centralized_2d(fp) fft = np.fft.fft2(fp_cen)# 中心化后的頻譜 spectrum_fshift = spectrum_fft(fft) spectrum_log = np.log(1 + spectrum_fshift)# 濾波器 n = 15 r = 20 H = butterworth_low_pass_filter(fp, fp.shape, radius=100, n=3) # BNRF_1 = butterworth_notch_resistant_filter(fp, radius=r, uk=355, vk=0, n=n) # BNRF_2 = butterworth_notch_resistant_filter(fp, radius=r, uk=0, vk=355, n=n) # BNRF_3 = butterworth_notch_resistant_filter(fp, radius=r, uk=250, vk=250, n=n) # BNRF_4 = butterworth_notch_resistant_filter(fp, radius=r, uk=-250, vk=250, n=n) # BNRF = BNRF_1 * BNRF_2 * BNRF_3 * BNRF_4 * H BNRF = H fft_filter = fft * (1 - BNRF)# 濾波后的頻譜 spectrum_filter = spectrum_fft(fft_filter) spectrum_filter_log = np.log(1 + spectrum_filter)# 傅里葉反變換 ifft = np.fft.ifft2(fft_filter)# 去中心化反變換的圖像,并取左上角的圖像 img_new = centralized_2d(ifft.real)[:M, :N] img_new = np.clip(img_new, 0, img_new.max()) img_new = np.uint8(normalize(img_new) * 255)plt.figure(figsize=(15, 12)) # plt.subplot(221), plt.imshow(img_ori, 'gray'), plt.title('With Sine noise'), plt.xticks([]),plt.yticks([]) # plt.subplot(222), plt.imshow(spectrum_log, 'gray'), plt.title('Spectrum'), plt.xticks([]),plt.yticks([]) # plt.subplot(223), plt.imshow(spectrum_filter_log, 'gray'), plt.title('Spectrum'), plt.xticks([]),plt.yticks([]) plt.subplot(224), plt.imshow(img_new, 'gray'), plt.title('Spectrum'), plt.xticks([]),plt.yticks([]) plt.tight_layout() plt.show()

def narrow_notch_filter(img, w=5, opening=10, vertical=True, horizontal=False):"""create narrow notch resistant filterparam: img: input, source imageparam: w: input, int, width of the resistant, value is 0, default is 5param: opening: input, int, opening of the resistant, value is 1, default is 10param: vertical: input, boolean, whether vertical or not, default is "True"param: horizontal: input, boolean, whether horizontal or not, default is "False"return a [0, 1] value butterworth band resistant filter""" assert w > 0, "W must greater than 0"w_half = w//2opening_half = opening//2img_temp = np.ones(img.shape[:2])M, N = img_temp.shape[:]img_vertical = img_temp.copy()img_horizontal = img_temp.copy()if horizontal:img_horizontal[M//2 - w_half:M//2 + w - w_half, :] = 0img_horizontal[:, N//2 - opening_half:N//2 + opening - opening_half] = 1if vertical:img_vertical[:, N//2 - w_half:N//2 + w - w_half] = 0img_vertical[M//2 - opening_half:M//2 + opening - opening_half, :] = 1img_dst = img_horizontal * img_verticalreturn img_dst # 陷波濾波器處理周期噪聲,用巴特沃斯低通濾波器得到的效果比目前的陷波濾波器效果還要好 img_ori = cv2.imread('DIP_Figures/DIP3E_Original_Images_CH05/Fig0519(a)(florida_satellite_original).tif', 0) M, N = img_ori.shape[:2]fp = pad_image(img_ori, mode='reflect') fp_cen = centralized_2d(fp) fft = np.fft.fft2(fp_cen)# 中心化后的頻譜 spectrum_fshift = spectrum_fft(fft) spectrum_log = np.log(1 + spectrum_fshift)# 濾波器 n = 15 r = 20 H = narrow_notch_filter(fp, w=10, opening=30, vertical=True, horizontal=False) # BNRF_1 = butterworth_notch_resistant_filter(fp, radius=r, uk=355, vk=0, n=n) # BNRF_2 = butterworth_notch_resistant_filter(fp, radius=r, uk=0, vk=355, n=n) # BNRF_3 = butterworth_notch_resistant_filter(fp, radius=r, uk=250, vk=250, n=n) # BNRF_4 = butterworth_notch_resistant_filter(fp, radius=r, uk=-250, vk=250, n=n) # BNRF = BNRF_1 * BNRF_2 * BNRF_3 * BNRF_4 * H BNRF = Hfft_filter = fft * BNRF# 濾波后的頻譜 spectrum_filter = spectrum_fft(fft_filter) spectrum_filter_log = np.log(1 + spectrum_filter)# 傅里葉反變換 ifft = np.fft.ifft2(fft_filter)# 去中心化反變換的圖像,并取左上角的圖像 img_new = centralized_2d(ifft.real)[:M, :N] img_new = np.clip(img_new, 0, img_new.max()) img_new = np.uint8(normalize(img_new) * 255)plt.figure(figsize=(15, 16)) plt.subplot(221), plt.imshow(img_ori, 'gray'), plt.title('With noise'), plt.xticks([]),plt.yticks([]) plt.subplot(222), plt.imshow(spectrum_log, 'gray'), plt.title('Spectrum'), plt.xticks([]),plt.yticks([]) plt.subplot(223), plt.imshow(spectrum_filter_log, 'gray'), plt.title('Spectrum With Filter'), plt.xticks([]),plt.yticks([]) plt.subplot(224), plt.imshow(img_new, 'gray'), plt.title('IDFT'), plt.xticks([]),plt.yticks([]) plt.tight_layout() plt.show()

# 陷波濾波器提取周期噪聲,用巴特沃斯低通濾波器得到的效果比目前的陷波濾波器效果還要好 img_ori = cv2.imread('DIP_Figures/DIP3E_Original_Images_CH05/Fig0519(a)(florida_satellite_original).tif', 0) M, N = img_ori.shape[:2]fp = pad_image(img_ori, mode='reflect') fp_cen = centralized_2d(fp) fft = np.fft.fft2(fp_cen)# 中心化后的頻譜 spectrum_fshift = spectrum_fft(fft) spectrum_log = np.log(1 + spectrum_fshift)# 濾波器 n = 15 r = 20 H = narrow_notch_filter(fp, w=10, opening=30, vertical=True, horizontal=False) # BNRF_1 = butterworth_notch_resistant_filter(fp, radius=r, uk=355, vk=0, n=n) # BNRF_2 = butterworth_notch_resistant_filter(fp, radius=r, uk=0, vk=355, n=n) # BNRF_3 = butterworth_notch_resistant_filter(fp, radius=r, uk=250, vk=250, n=n) # BNRF_4 = butterworth_notch_resistant_filter(fp, radius=r, uk=-250, vk=250, n=n) # BNRF = BNRF_1 * BNRF_2 * BNRF_3 * BNRF_4 * H BNRF = Hfft_filter = fft * (1 - BNRF)# 濾波后的頻譜 spectrum_filter = spectrum_fft(fft_filter) spectrum_filter_log = np.log(1 + spectrum_filter)# 傅里葉反變換 ifft = np.fft.ifft2(fft_filter)# 去中心化反變換的圖像,并取左上角的圖像 img_new = centralized_2d(ifft.real)[:M, :N] img_new = np.clip(img_new, 0, img_new.max()) img_new = np.uint8(normalize(img_new) * 255)plt.figure(figsize=(15, 16)) # plt.subplot(221), plt.imshow(img_ori, 'gray'), plt.title('With noise'), plt.xticks([]),plt.yticks([]) # plt.subplot(222), plt.imshow(spectrum_log, 'gray'), plt.title('Spectrum'), plt.xticks([]),plt.yticks([]) # plt.subplot(223), plt.imshow(spectrum_filter_log, 'gray'), plt.title('Spectrum With Filter'), plt.xticks([]),plt.yticks([]) plt.subplot(224), plt.imshow(img_new, 'gray'), plt.title('IDFT'), plt.xticks([]),plt.yticks([]) plt.tight_layout() plt.show()

# 使用陷波帶阻濾波器濾波 img_florida = cv2.imread("DIP_Figures/DIP3E_Original_Images_CH05/Fig0519(a)(florida_satellite_original).tif", -1)#-------------------------------- fft = np.fft.fft2(img_florida) fft_shift = np.fft.fftshift(fft) amp_img = np.abs(np.log(1 + np.abs(fft_shift)))#-------------------------------- BNF = narrow_notch_filter(img_florida, w=5, opening=20, vertical=True, horizontal=False)fft_NNF = np.fft.fft2(BNF*255) fft_shift_NNF = np.fft.fftshift(fft_NNF) amp_img_NNF = np.abs(np.log(1 + np.abs(fft_shift_NNF)))#-------------------------------- f1shift = fft_shift * (BNF) f2shift = np.fft.ifftshift(f1shift) #對新的進行逆變換 img_new = np.fft.ifft2(f2shift)#出來的是復數,無法顯示 img_new = np.abs(img_new)#調整大小范圍便于顯示 img_new = (img_new-np.amin(img_new))/(np.amax(img_new)-np.amin(img_new))fft_mask = amp_img * BNFplt.figure(figsize=(15, 16)) plt.subplot(221),plt.imshow(img_florida,'gray'),plt.title('Image with noise') plt.subplot(222),plt.imshow(amp_img,'gray'),plt.title('FFT') plt.subplot(223),plt.imshow(fft_mask,'gray'),plt.title('FFT with mask') plt.subplot(224),plt.imshow(img_new,'gray'),plt.title('Denoising') plt.tight_layout() plt.show()

最優陷波濾波

這種濾波方法的過程如下:
首先分離干擾模式的各個主要貢獻,然后從被污染圖像中減去該模式的一個可變加權部分。

首先提取干模式的主頻率分量,提取方法是在每個尖峰位置放一個陷波帶通濾波器傳遞函數HNP(u,v)H_{NP}(u, v)HNP?(u,v),則干擾噪聲模式的傅里葉變換為:
N(u,v)=HNP(u,v)G(u,v)(5.38)N(u, v) = H_{NP}(u, v)G(u, v) \tag{5.38}N(u,v)=HNP?(u,v)G(u,v)(5.38)

則有噪聲模式:
η(x,y)=J?1{HNP(u,v)G(u,v)}(5.39)\eta(x, y) = \mathfrak{J}^-1 \{ H_{NP}(u, v)G(u, v) \} \tag{5.39}η(x,y)=J?1{HNP?(u,v)G(u,v)}(5.39)

如果我們知道了噪聲模式,我們假設噪聲是加性噪聲,只可以用污染的噪聲g(x,y)g(x, y)g(x,y)減去噪聲模式η(x,y)\eta(x, y)η(x,y)可得到f^(x,y)\hat{f}(x, y)f^?(x,y),但通常這只是一個近似值。
f^(x,y)=g(x,y)?w(x,y)η(x,y)(5.40)\hat{f}(x, y) = g(x, y) - w(x, y)\eta(x, y) \tag{5.40}f^?(x,y)=g(x,y)?w(x,y)η(x,y)(5.40)
w(x,y)w(x, y)w(x,y)是一個加權函數或調制函數,這個方法的目的就是選取w(x,y)w(x, y)w(x,y),以便以某種意義的方式來優化結果。一種方法是選擇w(x,y)w(x, y)w(x,y),使f^(x,y)\hat{f}(x, y)f^?(x,y)在每點(x,y)(x, y)(x,y)的規定鄰域上的方差最小。

m×nm\times{n}m×n(奇數)的鄰域SxyS_{xy}Sxy?f^(x,y)\hat{f}(x, y)f^?(x,y)的“局部”方差估計如下:
σ2(x,y)=1mn∑(r,c)∈Sxy[f^(r,c)?f^ˉ]2(5.41)\sigma^2(x, y) = \frac{1}{mn} \sum_{(r,c)\in S_{xy}} \Big[ \hat{f}(r, c) - \bar{\hat{f}} \Big]^2 \tag{5.41}σ2(x,y)=mn1?(r,c)Sxy??[f^?(r,c)?f^?ˉ?]2(5.41)

f^ˉ\bar{\hat{f}}f^?ˉ?是鄰域f^\hat{f}f^?的平均值,
f^ˉ=1mn∑(r,c)∈Sxyf^(r,c)(5.42)\bar{\hat{f}} = \frac{1}{mn} \sum_{(r,c)\in S_{xy}} \hat{f}(r, c) \tag{5.42}f^?ˉ?=mn1?(r,c)Sxy??f^?(r,c)(5.42)

將式(5.40)代入(5.41),得
σ2(x,y)=1mn∑(r,c)∈Sxy{[g(r,c)?w(r,c)η(r,c)]?[g ̄?wη ̄]}2(5.43)\sigma^2(x, y) = \frac{1}{mn} \sum_{(r,c)\in S_{xy}} \Big\{\big[g(r, c) - w(r, c) \eta(r, c)\big] - \big[\overline{g} - \overline{w\eta} \big ] \Big\}^2\tag{5.43}σ2(x,y)=mn1?(r,c)Sxy??{[g(r,c)?w(r,c)η(r,c)]?[g??wη?]}2(5.43)

g ̄\overline{g}g?wη ̄\overline{w\eta}wη?分別是gggwηw\etawη在鄰域SxyS_{xy}Sxy?的平均值

若假設wwwSxyS_{xy}Sxy?內近似為常數,則可用該鄰域中心的www值來代替w(r,c)w(r, c)w(r,c):

w(r,c)=w(x,y)(5.44)w(r, c) = w(x, y) \tag{5.44}w(r,c)=w(x,y)(5.44)

因為w(x,y)w(x, y)w(x,y)SxyS_{xy}Sxy?中被假設為常數,因此在SxyS_{xy}Sxy?中根據w ̄=w(x,y)\overline{w} = w(x, y)w=w(x,y)

wη ̄=w(x,y)η ̄(5.45)\overline{w\eta} = w(x, y) \overline{\eta} \tag{5.45}wη?=w(x,y)η?(5.45)

η ̄\overline{\eta}η?是鄰域SxyS_{xy}Sxy?中的平均值,所以式(5.43)變為:

σ2(x,y)=1mn∑(r,c)∈Sxy{[g(r,c)?w(x,y)η(r,c)]?[g ̄?w(x,y)η ̄]}2(5.44)\sigma^2(x, y) = \frac{1}{mn} \sum_{(r,c)\in S_{xy}} \Big\{\big[g(r, c) - w(x, y) \eta(r, c)\big] - \big[\overline{g} - {w(x, y)}\overline{\eta} \big ] \Big\}^2\tag{5.44}σ2(x,y)=mn1?(r,c)Sxy??{[g(r,c)?w(x,y)η(r,c)]?[g??w(x,y)η?]}2(5.44)

要使得σ2(x,y)\sigma^2(x, y)σ2(x,y)相對w(x,y)w(x, y)w(x,y)最小,我們可以對式(5.44)求關于w(x,y)w(x, y)w(x,y)的偏導數,并令為偏導數為0;

?σ2(x,y)?w(x,y)=0(5.47)\frac{\partial{\sigma^2(x, y)}}{\partial{w(x, y)}} = 0 \tag{5.47}?w(x,y)?σ2(x,y)?=0(5.47)

求得w(x,y)w(x, y)w(x,y):
w(x,y)=gη ̄?gˉηˉη2 ̄?ηˉ2(5.48)w(x, y) = \frac{\overline{g\eta} - \bar{g}\bar{\eta}}{\overline{\eta^2} - \bar{\eta}^2}\tag{5.48}w(x,y)=η2??ηˉ?2gη??gˉ?ηˉ??(5.48)

把式(5.48)代入式(5.40)并在噪聲圖像ggg中的每個點執行這一過程,可得到完全復原的圖像。

# 這里還沒有實現,遲點再弄吧 img_mariner = cv2.imread("DIP_Figures/DIP3E_Original_Images_CH05/Fig0520(a)(NASA_Mariner6_Mars).tif", 0) M, N = img_mariner.shape[:2]fp = pad_image(img_mariner, mode='reflect') fp_cen = centralized_2d(fp) fft = np.fft.fft2(fp_cen)# 中心化后的頻譜 spectrum_fshift = spectrum_fft(fft) spectrum_log = np.log(1 + spectrum_fshift)# 未中心化的頻譜 fft_fp = np.fft.fft2(fp) spectrum_fp = spectrum_fft(fft_fp) spectrum_fp_log = np.log(1 + spectrum_fp)# 濾波器 n = 15 r = 20 H = butterworth_band_resistant_filter(fp, fp.shape, radius=40, w=5, n=5) # BNRF_1 = butterworth_notch_resistant_filter(fp, radius=r, uk=355, vk=0, n=n) # BNRF_2 = butterworth_notch_resistant_filter(fp, radius=r, uk=0, vk=355, n=n) # BNRF_3 = butterworth_notch_resistant_filter(fp, radius=r, uk=250, vk=250, n=n) # BNRF_4 = butterworth_notch_resistant_filter(fp, radius=r, uk=-250, vk=250, n=n) # BNRF = BNRF_1 * BNRF_2 * BNRF_3 * BNRF_4 * Hfft_filter = fft_fp * (1 - H) ifft = np.fft.ifft2(fft_filter) img_new = ifft.real[:M, :N]# # show = spectrum_fp_log * H # fft_filter = fft * BNRF# # 濾波后的頻譜 # spectrum_filter = spectrum_fft(fft_filter) # spectrum_filter_log = np.log(1 + spectrum_filter)# # 傅里葉反變換 # ifft = np.fft.ifft2(fft_filter)# 去中心化反變換的圖像,并取左上角的圖像 # img_new = centralized_2d(ifft.real)[:M, :N] # img_new = np.clip(img_new, 0, img_new.max()) # img_new = np.uint8(normalize(img_new) * 255)plt.figure(figsize=(15, 15)) plt.subplot(221), plt.imshow(img_mariner, 'gray'), plt.title('With noise'), plt.xticks([]),plt.yticks([]) plt.subplot(222), plt.imshow(spectrum_log, 'gray'), plt.title('Spectrum Centralied'), plt.xticks([]),plt.yticks([]) plt.subplot(223), plt.imshow(spectrum_fp_log, 'gray'), plt.title('Spectrum Not Centralized'), plt.xticks([]),plt.yticks([]) plt.subplot(224), plt.imshow(img_new, 'gray'), plt.title('IDFT'), plt.xticks([]),plt.yticks([]) plt.tight_layout() plt.show()

# 巴特沃斯帶阻陷波濾波器 BNRF img_dst = img_mariner - img_new plt.figure(figsize=(16, 16)) plt.subplot(221), plt.imshow(img_dst, 'gray'), plt.title('BNF_1') # plt.subplot(222), plt.imshow(BNF_2, 'gray'), plt.title('BNF_2') # plt.subplot(223), plt.imshow(BNF_3, 'gray'), plt.title('BNF_3') # plt.subplot(224), plt.imshow(BNF_dst, 'gray'), plt.title('BNF_dst') plt.tight_layout() plt.show()

總結

以上是生活随笔為你收集整理的第5章 Python 数字图像处理(DIP) - 图像复原与重建12 - 空间滤波 - 使用频率域滤波降低周期噪声 - 陷波滤波、最优陷波滤波的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

在线国产日本 | 色婷婷综合在线 | 欧美午夜剧场 | 波多野结衣最新 | 亚洲成人黄色av | www.夜色.com| 蜜臀av性久久久久蜜臀av | 国产91九色蝌蚪 | 久久综合久久综合这里只有精品 | 亚洲精品在线观看中文字幕 | 成人在线免费观看网站 | 欧美一级免费 | 国产手机在线观看 | 天天鲁天天干天天射 | 一本一道久久a久久精品 | 色综合天天视频在线观看 | 欧美小视频在线 | 人人澡视频 | 精品一二三四视频 | 久久久久久综合 | 天天色官网| www.久久色| 亚洲国产中文字幕 | 91丨九色丨蝌蚪丨对白 | 亚洲午夜精品在线观看 | 欧美日一级片 | 少妇性xxx | 国产精品久久中文字幕 | 天天躁天天操 | 久久久综合香蕉尹人综合网 | 欧美不卡视频在线 | 碰天天操天天 | 在线观看黄色大片 | 国产美女久久久 | 日韩专区视频 | 精品久久久久久久久久久久 | 99精彩视频在线观看免费 | 天天操夜夜拍 | 国产v在线| 国产一级片一区二区三区 | 中文字幕中文字幕在线中文字幕三区 | 99久久99久久精品 | 午夜123 | 欧美日韩国产一区二区三区在线观看 | 波多野结衣理论片 | 中文字幕黄色网址 | 在线观看 亚洲 | 97激情影院 | 天天射天天射天天射 | 日日夜夜人人精品 | 天天爱天天干天天爽 | 久草网站在线观看 | 免费在线观看av的网站 | 九九爱免费视频在线观看 | 狠狠干综合 | 欧美一级裸体视频 | 9797在线看片亚洲精品 | 欧美成人性战久久 | 韩国三级在线一区 | 欧美精品在线一区 | 天天摸日日操 | 日韩在线高清 | 天天色成人网 | 综合色中色| 色激情在线 | 久久精选 | 国产一在线精品一区在线观看 | 黄色网中文字幕 | 国内一级片在线观看 | 欧美日韩在线免费观看 | 亚a在线 | 丁香九月激情 | 国产精品日韩欧美一区二区 | 成人av电影免费在线播放 | 国产一区二区三区免费观看视频 | 成人va在线观看 | 天无日天天操天天干 | 亚洲视频久久久久 | 国产精品18久久久久白浆 | 久久久国产影视 | 五月婷婷另类国产 | 91桃色在线播放 | 国产99一区二区 | 国产69精品久久99的直播节目 | 最新av在线播放 | 日本久久视频 | 成年人在线免费看片 | 国产精品露脸在线 | 永久免费视频国产 | 久久精品中文字幕少妇 | 最近更新好看的中文字幕 | 久草在线 | 国产精品自在线 | 五月婷婷综合在线观看 | 91探花在线视频 | 久久三级视频 | 久久精品综合一区 | 久草在线观看资源 | 国产精品 欧美 日韩 | 97在线免费视频观看 | 黄色网址a| 欧美日韩一区二区在线 | 欧美色图东方 | 中文字幕免费久久 | 国产91九色视频 | 久久视频国产精品免费视频在线 | 日韩成人在线免费观看 | 欧美日韩在线免费观看视频 | 久久久999 | 99精品国产免费久久 | 国产aa免费视频 | 热久久免费国产视频 | 久草在线视频首页 | 欧美一区二区三区特黄 | 午夜精品久久久久久久99无限制 | 97夜夜澡人人爽人人免费 | 麻豆久久精品 | 国产伦理久久精品久久久久_ | 日本69hd| 中文在线字幕免费观看 | 久久看视频 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 美女网站黄免费 | 天天天干夜夜夜操 | 日韩二区在线观看 | 欧美日韩精品免费观看 | 久久久久欠精品国产毛片国产毛生 | 日本狠狠干 | 欧美激情综合五月色丁香小说 | 99久久精品国产免费看不卡 | 月下香电影 | av电影在线免费观看 | 国产一区二区在线精品 | 国产又粗又猛又黄又爽的视频 | 久久久久久免费毛片精品 | 日韩av电影一区 | 日韩高清免费在线 | 欧美黄色特级片 | 久av电影| 精品一区av | 亚洲天堂精品视频 | 国产高清视频在线免费观看 | 免费婷婷| 精品在线二区 | 国产中文在线视频 | 婷婷色在线 | 干干操操 | 99久久电影 | 国产精国产精品 | 又黄又刺激又爽的视频 | 免费人成网ww44kk44 | 久久不卡日韩美女 | 久久人人爽人人爽人人 | 美女黄色网在线播放 | 亚洲在线成人精品 | 在线观看av的网站 | 国产精品你懂的在线观看 | 97成人免费视频 | 欧美色伊人 | 欧美在线观看视频一区二区三区 | 一级黄色大片在线观看 | 欧美国产日韩一区二区三区 | 国产日韩精品在线 | 色婷婷综合在线 | 亚洲成av人影院 | 婷婷av电影 | 亚洲国产精品第一区二区 | 五月天激情视频在线观看 | 亚洲在线国产 | 国产精品18videosex性欧美 | 国产精品自产拍在线观看蜜 | 91中文在线 | 丰满少妇高潮在线观看 | 五月天婷婷综合 | 成人黄色大片在线免费观看 | 亚洲综合黄色 | 欧美日韩不卡在线视频 | 国产亚洲精品久久久久久久久久久久 | 欧美另类xxxx | 日韩精品一区二区三区免费观看视频 | 99精品在线免费在线观看 | 99久久精品国产欧美主题曲 | 亚洲精品视频在线观看网站 | 国产成人一区二区三区免费看 | 91亚洲激情 | 国产一级片直播 | 国产精品18久久久久久久久久久久 | 国产在线观看网站 | 黄色日批网站 | 五月天综合在线 | 精品久久久久久一区二区里番 | 日韩av在线高清 | 这里有精品在线视频 | 久草网站 | 国产黄色片在线 | 狠狠久久伊人 | 99视频网址 | 人人爽人人爽人人爽学生一级 | 中国一级片免费看 | 亚洲爱av | 成人av在线一区二区 | 91网页版免费观看 | 午夜电影一区 | 亚洲天堂va | 国产精品久久久久久久久久久杏吧 | 国产精品午夜在线观看 | 黄色影院在线播放 | 免费黄色网址网站 | 99精品视频一区二区 | 国产视频九色蝌蚪 | 在线观看av的网站 | 日韩偷拍精品 | 日韩经典一区二区三区 | 综合激情av| 国产精品第二十页 | 激情视频免费在线观看 | 亚洲 成人 欧美 | 国产精品一区二区 91 | 97av.com| 伊香蕉大综综综合久久啪 | 国产精品乱码高清在线看 | 精品亚洲va在线va天堂资源站 | 国产精品黄网站在线观看 | 欧美性超爽 | 日韩精品无码一区二区三区 | 91最新视频在线观看 | 亚洲激情| 一区二区不卡视频在线观看 | 国产一级免费片 | 免费观看性生交 | 一本—道久久a久久精品蜜桃 | 日韩网页 | 国产精品mv | av蜜桃在线 | 亚洲综合视频在线观看 | 奇米网8888| 国产人免费人成免费视频 | 97国产一区二区 | 91丨九色丨国产在线 | 国产精品成久久久久三级 | www.在线看片.com | 18国产精品福利片久久婷 | 日韩精品一区二区不卡 | 成人免费影院 | 亚洲伊人网在线观看 | 国产成人综合图片 | av在线播放中文字幕 | 久久精品中文字幕免费mv | 97电影院网 | 人人干人人添 | 成 人 黄 色 视频播放1 | 久草线 | 91中文字幕在线视频 | 蜜臀av夜夜澡人人爽人人 | 国产亚洲精品无 | 亚洲精品网址在线观看 | 狠狠狠色 | av资源网在线播放 | 国产日韩欧美在线影视 | 国产免费黄色 | 亚洲另类在线视频 | 在线观看91精品国产网站 | 婷婷四房综合激情五月 | 五月婷网站 | 一区二区三区四区五区在线视频 | 国产中文在线观看 | 毛片激情永久免费 | 综合久久网站 | 国产精品一区二区三区在线 | 中文字幕在线免费看线人 | 超碰97中文 | 婷婷综合 | 国产尤物一区二区三区 | 色噜噜狠狠狠狠色综合久不 | 日韩精品在线看 | 日本精品久久久一区二区三区 | 91久久在线观看 | 国产成人精品在线观看 | 91传媒在线观看 | 91av在线视频免费观看 | 精品国产成人av在线免 | 中文字幕有码在线观看 | 日韩欧美大片免费观看 | 久久久久久久久久久电影 | 超碰在线公开 | 婷婷综合在线 | av综合av | 9在线观看免费 | 亚洲激情国产精品 | 天堂av免费 | 久久精品99国产精品日本 | 免费看黄电影 | 日韩精品视频久久 | 免费黄色av电影 | 国产精品久久久久婷婷二区次 | 日韩av在线免费播放 | 国产一区二区手机在线观看 | 亚洲 欧美 变态 国产 另类 | 久久久免费在线观看 | 欧美日韩国产亚洲乱码字幕 | a国产精品 | 午夜精品99久久免费 | 色香蕉网 | 婷婷久久五月 | 麻豆超碰 | 色综合天天视频在线观看 | 亚洲精品午夜aaa久久久 | 97超碰国产精品 | 欧美激情综合色 | 国产视频2区 | 国产欧美高清 | 国产精品久久一区二区三区, | 日韩在线观看中文字幕 | 成人黄色av免费在线观看 | 久草在线免费资源站 | 亚洲丁香久久久 | 久草| 亚州国产精品 | 天天看天天干天天操 | 国产精品1区2区3区 久久免费视频7 | 国产午夜一区 | 在线免费观看一区二区三区 | 黄色一集片 | 六月激情网 | 欧美三人交 | 久久99国产综合精品免费 | 久久毛片高清国产 | 日韩网站一区二区 | 狠狠色网 | 天天草天天| a成人v | 欧美午夜精品久久久久 | 日本中文字幕在线看 | 久久午夜精品影院一区 | 日韩国产精品一区 | 在线观看岛国片 | 国产精品va在线 | 天天操天天添天天吹 | 欧美一区影院 | 亚洲天堂va | 国产精品自在线拍国产 | 五月婷婷在线观看视频 | 五月婷色| 丁香六月国产 | 精品视频免费 | 欧美va日韩va | 色综合久久88色综合天天 | 岛国精品一区二区 | 黄色一级大片在线免费看国产一 | 色视频网页 | 超碰成人网 | 久久污视频 | 久久综合色8888 | 91精品国自产拍天天拍 | 久久草草热国产精品直播 | 久久免费视频在线观看6 | 97在线成人| 在线欧美日韩 | 天天久久综合 | 97超碰在线久草超碰在线观看 | 精品久久久国产 | 国产中文 | 成人精品一区二区三区中文字幕 | 久久久久久久久久毛片 | 免费看片成年人 | 91喷水| av网址aaa | 亚洲精品乱码久久久久久写真 | 国产91九色蝌蚪 | 成年人在线免费视频观看 | www.日日日.com | 国产精品一级在线 | 久久久高清视频 | 91视频3p | 国产精品久久久久久久久久新婚 | 99热在线这里只有精品 | 亚洲视频在线观看免费 | 国产精品白浆 | 天天爱天天操天天爽 | h视频在线看| 黄av资源 | 日日夜夜天天久久 | 国产91精品在线观看 | 片网站 | 日韩精品一区二区三区免费视频观看 | 欧美精品一区二区三区四区在线 | 悠悠av资源片 | 97av精品 | 狠狠色丁香婷婷 | av中文天堂| 成人app在线播放 | 91重口视频 | 日韩丝袜 | 天天操天天拍 | 日韩在线观看小视频 | 久久免费的精品国产v∧ | 最近中文字幕大全中文字幕免费 | 亚洲激情在线视频 | 日韩在线视频二区 | 黄色资源在线观看 | 色综合久久悠悠 | 欧美一级片在线观看视频 | 亚洲精品午夜国产va久久成人 | www.午夜视频 | 日本高清xxxx | 99精品国产免费久久久久久下载 | 亚洲国产欧美一区二区三区丁香婷 | 日本精品视频在线观看 | 在线播放国产一区二区三区 | 免费黄色a网站 | 91精品推荐 | 麻豆系列在线观看 | 天天曰天天爽 | 天天操人人干 | 综合天天| 日韩激情av在线 | 日韩欧美一区二区三区黑寡妇 | 综合天天 | 欧美激情第八页 | 成人亚洲精品久久久久 | 国产精品一区二区av影院萌芽 | 少妇av网 | 不卡的av电影在线观看 | 久久婷婷五月综合色丁香 | 午夜在线看 | 中文字幕婷婷 | 日韩一区二区免费在线观看 | av直接看| 国产一区久久久 | av视屏在线播放 | 免费看黄在线网站 | 国产高清视频在线观看 | 91成人免费在线 | 国产 日韩 欧美 自拍 | 99精品免费 | 美女av免费看 | 91精品国产乱码在线观看 | 婷婷色综 | 色在线视频 | 天天做天天爱天天综合网 | 日韩在线一二三区 | av在线成人 | 97超碰在线视 | 99精品免费视频 | 日韩美av在线 | aaa日本高清在线播放免费观看 | 超碰97人人干 | 国产v在线观看 | 免费欧美精品 | 韩国视频一区二区三区 | 最近中文字幕mv | 国产自制av| 狠狠操影视| 欧美久久久久久久久中文字幕 | 精品久久久久久综合日本 | a久久久久| 六月激情婷婷 | 亚洲国产精品久久 | 亚洲精品18日本一区app | 国产精品大片免费观看 | 日韩成人精品在线观看 | 久久久综合九色合综国产精品 | 少妇bbw撒尿| 在线观看免费高清视频大全追剧 | 99视频免费看 | 高清久久久久久 | 免费视频国产 | 婷婷激情综合五月天 | 欧美精品免费一区二区 | av电影一区二区三区 | 最近2019年日本中文免费字幕 | 中文字幕亚洲在线观看 | 激情深爱五月 | 999视频精品| 97超碰资源总站 | 国产69精品久久99的直播节目 | 日韩欧美一区二区三区视频 | 国产综合在线视频 | 国产精品18久久久久久久 | 91香蕉视频色版 | 午夜色影院 | 在线电影91 | 西西www4444大胆视频 | 国产理论一区二区三区 | 麻豆国产露脸在线观看 | 五月天婷婷免费视频 | 激情综合电影网 | 五月激情站| 99精品在线| 久久综合日| 伊在线视频 | 久久视频在线观看免费 | 精品视频专区 | 色.com| 精品999 | 91人人干 | 激情网第四色 | 五月婷婷综合在线视频 | 五月婷婷一区二区三区 | 99精品久久精品一区二区 | 在线日本看片免费人成视久网 | 免费视频久久久久 | 超碰在线94 | a级片韩国 | 一区二区在线电影 | 91av视频在线观看 | 激情导航 | 成人午夜电影网站 | 亚洲日本va在线观看 | 色婷婷狠狠18 | 91九色网站 | 国产精品 日韩 欧美 | 最近免费中文字幕 | 激情视频在线观看网址 | 日本在线中文在线 | 日本xxxxav| 国产福利一区二区在线 | 国产一二三精品 | 开心激情久久 | 97超碰在线久草超碰在线观看 | 韩日三级在线 | 日批视频在线观看免费 | 91精品一区二区三区蜜臀 | 国产视频综合在线 | 婷婷中文字幕在线观看 | 日日干影院 | 国内精品中文字幕 | 日日躁天天躁 | 日韩午夜av | 亚洲免费av在线播放 | 99九九视频 | av理论电影| a极黄色片 | 一区二区三区四区五区在线视频 | av国产在线观看 | 精品影院一区二区久久久 | 国产精品久久久久久久久久久久午夜 | 手机成人在线 | 日韩丝袜 | 狠狠狠狠狠狠狠狠干 | 国产在线久久久 | 久久激情综合网 | 欧美激情xxxx | av 一区二区三区四区 | 亚洲精品www. | 午夜精品福利在线 | 97精品一区二区三区 | 婷婷深爱五月 | 亚洲人成综合 | 久久99国产精品久久 | 欧美成人基地 | 国产精品一区二区在线观看 | 亚洲成人频道 | 久久夜色精品国产欧美乱极品 | 91视频免费观看 | 欧美十八| 欧美一区二区伦理片 | 精品久久久久免费极品大片 | 国产一区免费视频 | 美女国产精品 | 91 中文字幕| 国产精品久久久久一区二区三区共 | 天天操天天射天天舔 | 久久久综合香蕉尹人综合网 | 日韩网站在线 | 激情深爱 | 国产白浆在线观看 | 日韩一区二区免费在线观看 | 亚洲成年人免费网站 | 久久综合99 | 欧美国产日韩一区 | 国产最新视频在线观看 | 黄色免费视频在线观看 | 国产精品成人在线观看 | 亚洲va韩国va欧美va精四季 | 日本在线h | 午夜久久福利视频 | 特级毛片爽www免费版 | 久久毛片高清国产 | 日韩专区在线观看 | 国产一区二区三区视频在线 | 又黄又爽又无遮挡的视频 | 亚洲国产成人精品久久 | 国产精品国产精品 | 草莓视频在线观看免费观看 | 九九亚洲视频 | aaaaaa毛片| 91视频3p | 国产我不卡| 黄色在线看网站 | 国产91勾搭技师精品 | 成人免费网视频 | 日日干日日操 | 免费av视屏 | 午夜久久福利视频 | 亚洲aⅴ乱码精品成人区 | 久久一区二| 99精品视频免费观看 | 亚洲激情六月 | 中文字幕亚洲不卡 | 国产乱对白刺激视频在线观看女王 | 国产精品成人一区二区三区 | 日本精品一二区 | 在线黄色毛片 | av免费网站观看 | 国产特黄色片 | 麻豆传媒视频观看 | 国产视频1区2区3区 久久夜视频 | 国产成人在线观看免费 | 国产婷婷在线观看 | 国产精品手机视频 | 国产精美视频 | 国产精品区在线观看 | 久久久高清免费视频 | 香蕉影院在线播放 | 日精品在线观看 | 九九在线精品视频 | 欧美日韩免费观看一区=区三区 | 在线激情影院一区 | 黄色小说免费观看 | 夜夜视频资源 | 日日干天天爽 | 久久人人爽视频 | 夜夜看av| 中文字幕色播 | 青青河边草免费视频 | 日韩一区二区三免费高清在线观看 | 九九精品毛片 | 久久综合影视 | 久久精品这里热有精品 | 国产精品嫩草55av | 午夜精品区 | 中文字幕免费不卡视频 | 精品一区二区三区香蕉蜜桃 | 亚洲精品国偷拍自产在线观看 | 国产高清永久免费 | 手机av看片| 日韩在线免费视频观看 | 美女黄视频免费看 | 国产亚洲人成网站在线观看 | 视频在线99 | 日韩剧| 综合天天 | 精品国产福利在线 | 99在线免费观看视频 | 97日日碰人人模人人澡分享吧 | 国产免费大片 | 亚洲日本欧美在线 | 热精品| 免费观看一级成人毛片 | 狠狠干网站 | 亚洲精品免费在线观看 | 青青草视频精品 | 日本黄色片一区二区 | 国产精品久久久久久久久蜜臀 | 亚洲国产播放 | 成人黄色免费在线观看 | 亚洲精品动漫久久久久 | 在线观看日韩一区 | 日日精品 | 天天干天天干天天干天天干天天干天天干 | 欧美男女爱爱视频 | 国模精品在线 | 91久久久国产精品 | 久久精品99国产国产 | 日韩在线免费视频 | 欧美国产日韩一区二区 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 91在线免费视频观看 | 69av久久| 精品国产电影一区二区 | 久99热| 免费亚洲精品 | 久久久久久久久久久久久久免费看 | 国产免费久久 | 日韩在线观看小视频 | 免费色视频在线 | 久久精品视频免费观看 | www狠狠操 | 成年人免费看的视频 | 欧美在线观看禁18 | 视频福利在线观看 | 国产亚洲精品综合一区91 | 亚洲欧洲精品久久 | 丁香六月婷婷综合 | 97香蕉久久国产在线观看 | 日本黄色a级大片 | 97在线观看视频国产 | 午夜电影 电影 | 96av在线视频 | 狠狠综合网 | 国产一级免费视频 | 一区二区三区在线免费 | 一区二区视频欧美 | 91精品一区二区三区蜜桃 | 亚洲一本视频 | 中文字幕免费在线看 | 国产日韩欧美在线观看视频 | 美女精品网站 | 91亚洲狠狠婷婷综合久久久 | 国产免费久久 | 国产小视频精品 | 在线观看蜜桃视频 | av免费电影在线观看 | 欧美日韩高清在线观看 | 天天摸天天弄 | 日本视频高清 | 国产成人一区二区啪在线观看 | 亚洲伦理一区二区 | 国产又粗又猛又爽又黄的视频先 | 国产91在线免费视频 | 欧美日韩免费观看一区二区三区 | 日韩成人在线一区二区 | 亚洲日本精品 | 国内精品中文字幕 | 精品视频免费观看 | 亚洲精品午夜视频 | 91pony九色丨交换 | 国产精品毛片网 | 伊人五月天综合 | 国产精品欧美日韩在线观看 | 欧美性生活小视频 | 在线免费黄色片 | 久久免费国产视频 | 丁香久久五月 | 亚洲欧美经典 | 国产一区在线免费观看视频 | 日日婷婷夜日日天干 | 久 久久影院 | 天海冀一区二区三区 | 日韩a在线播放 | 婷婷久操| 午夜精品电影一区二区在线 | 亚洲一区二区黄色 | 999久久久久久 | 国产精品久久久久一区二区三区共 | 天天色图| 毛片黄色一级 | 免费中午字幕无吗 | 中文字幕乱码亚洲精品一区 | 国产中文字幕一区 | 亚洲精品系列 | 色婷婷激情四射 | 亚洲精品中文在线资源 | 亚洲国产字幕 | 成人片在线播放 | 91视频在线观看大全 | 国产精品不卡在线播放 | 国产精品成人免费 | 中文字幕在线日亚洲9 | 在线精品在线 | 成人在线免费视频观看 | 成人网色| av成人动漫在线观看 | 在线观看国产日韩欧美 | 久久免费成人 | 亚洲电影图片小说 | 亚洲国产精品一区二区久久hs | 天天干天天拍 | 超黄视频网站 | 日韩av看片 | 国内丰满少妇猛烈精品播 | 国产精品欧美久久久久无广告 | 精品在线视频播放 | 在线观看中文字幕视频 | 午夜精品一区二区三区在线观看 | 欧美日韩国产精品爽爽 | 欧美精品久久久久久 | 国产精品麻豆99久久久久久 | 中文字幕高清视频 | 区一区二在线 | 国产91亚洲| 免费一级片观看 | 香蕉国产91 | av观看在线观看 | 精品国产午夜 | 欧美日韩在线视频一区 | 伊人中文在线 | 日韩有码欧美 | 亚洲美女精品区人人人人 | 午夜精品一区二区三区在线视频 | 国产成人精品亚洲 | 国产裸体无遮挡 | 久久久久久高潮国产精品视 | 久久久影视 | 91视频链接 | 久久精品国亚洲 | 亚洲黄色网络 | 日韩理论片在线观看 | 久久免费精彩视频 | 亚洲精品男人天堂 | 久久大视频 | 国产精品免费在线播放 | av九九九 | 少妇视频在线播放 | 高清不卡一区二区三区 | 免费精品在线 | 亚洲免费精品视频 | 国产在线精品一区二区不卡了 | 丝袜美腿av | 免费婷婷 | 国产精品免费观看国产网曝瓜 | www久久久久 | 国产精品久久久久av免费 | 免费观看高清 | 在线电影91 | 欧美精品一区二区免费 | 欧美不卡视频在线 | 亚洲永久精品在线观看 | 国产在线观看a | 欧洲一区二区三区精品 | 黄色软件视频网站 | 手机在线欧美 | 99久高清在线观看视频99精品热在线观看视频 | 亚洲成a人片在线观看网站口工 | 成年人天堂com | 在线观看午夜av | 久久久久伦理电影 | 久久综合九色欧美综合狠狠 | 精品久久久久久一区二区里番 | 成人福利在线播放 | 欧美日韩另类在线 | 国产无吗一区二区三区在线欢 | 免费不卡中文字幕视频 | 美州a亚洲一视本频v色道 | 日本午夜免费福利视频 | 狠狠躁天天躁 | 婷婷色吧 | 很污的网站 | www.伊人网 | 亚洲女欲精品久久久久久久18 | www.夜夜爱 | 四虎影视精品成人 | 97精品电影院 | 亚洲欧美日韩中文在线 | 国产欧美日韩精品一区二区免费 | 亚洲欧美成人网 | 国产 视频 久久 | 精品资源在线 | 在线观看亚洲专区 | 精品久久久久久久久亚洲 | 999在线视频| 毛片网在线观看 | 久久精品视频在线播放 | 密桃av在线 | 久久五月网 | 中文字幕精品三级久久久 | 精品免费国产一区二区三区四区 | 国产精品123 | 久久夜色网| 亚洲精品乱码久久久久久写真 | 国产无区一区二区三麻豆 | 午夜av在线免费 | 精品国偷自产在线 | 精品一区二区在线免费观看 | 五月天六月婷 | 国产精品高清在线 | 成年人黄色大全 | 99久久这里只有精品 | 亚洲1级片| 久久久国产影视 | 国产精品久久久久久久久久久久午夜 | 国产精品久久久久久久av电影 | 国产99在线播放 | 国产视频一区精品 | 久久不卡国产精品一区二区 | 国产午夜三级一区二区三桃花影视 | 91av原创 | 99久久99视频| 香蕉视频在线免费 | 日韩三级在线 | 亚洲最新av在线网站 | 毛片精品免费在线观看 | 久久激五月天综合精品 | 91观看视频| 操一草 | 一区二区三区在线免费观看 | 97视频在线免费 | 97视频免费在线观看 | 免费欧美 | 欧美了一区在线观看 | 精品毛片一区二区免费看 | 中文字幕色婷婷在线视频 | 超碰在线1 | 在线看欧美 | www.婷婷色| 国产精品免费视频观看 | 日韩91精品 | 这里只有精品视频在线 | 久久亚洲欧美 | 国产美女主播精品一区二区三区 | 又色又爽又黄高潮的免费视频 | 欧美日韩国产成人 | 伊人亚洲精品 | 久草网在线视频 | 免费又黄又爽 | 免费在线观看av的网站 | 精品理论片 | 黄色免费电影网站 | 天天干天天做天天操 | 中文字幕亚洲欧美日韩 | 久久福利精品 | 久久免费a| 一级黄色大片在线观看 | 蜜臀91丨九色丨蝌蚪老版 | 久草视频免费观 | 99精品偷拍视频一区二区三区 | 中文字幕av最新 | 久久成人精品电影 | 久久久高清一区二区三区 | 99色在线视频 | 色视频在线观看 | 综合国产在线观看 | 久久精品视频2 | 国产精品美女久久久久aⅴ 干干夜夜 | 欧美 亚洲 另类 激情 另类 | 国产91电影在线观看 | 国产免费一区二区三区网站免费 | 日韩电影久久 | 9999激情| 久久一级电影 | 手机av电影在线 | 免费看日韩 | 中文字幕欧美日韩va免费视频 | 日韩av电影国产 | 97碰在线视频 | 中文字幕在线免费看 | 国产精品 国内视频 | 日韩高清一区在线 | 在线观看视频在线观看 | 免费看黄色91 | 亚洲三级在线免费观看 | 六月丁香激情网 | 中文字幕日韩在线播放 | 欧美最爽乱淫视频播放 | 午夜精品影院 | 久久久久久久久久电影 | 国产黄色在线观看 | 中文字幕av播放 | 色婷婷综合视频在线观看 | 狠狠干婷婷 | 日韩精品网址 | 天天艹日日干 | 综合网中文字幕 | 99免费在线观看视频 | 欧美精品乱码久久久久久 | 一级黄色片在线免费看 | 亚洲精品婷婷 | 91九色视频在线 | 有码中文字幕在线观看 | 樱空桃av | 日本黄色免费在线观看 | 久久一区二区三区超碰国产精品 | 免费在线观看91 | 激情图片qvod | 在线观看福利网站 | 四虎影视精品 | 国产精品成人国产乱一区 | 国产精品女主播一区二区三区 | 不卡的av| 免费热情视频 | 天天天插 | 又黄又爽的免费高潮视频 | 女人18毛片a级毛片一区二区 | 国产亚洲精品女人久久久久久 | 欧美二区视频 | 国产一区二区三区免费观看视频 | 在线观看91久久久久久 | 在线观看国产永久免费视频 | 色综合久久悠悠 | 伊人资源视频在线 | 五月天婷婷丁香花 | 91精品国产成人 | 亚洲专区在线播放 | 欧美日韩中文在线 | 五月天精品视频 | 在线国产一区 | 日韩精品久久一区二区三区 | 中文字幕在线免费观看 | 日韩在线视频二区 | 99色在线播放 | 欧美日韩亚洲第一 | 综合激情av | 亚洲天堂网在线观看视频 | 日本不卡123 | 久久久网| 国产一区二区在线免费播放 | 在线影视 一区 二区 三区 | 亚洲 欧美 综合 在线 精品 | 91九色视频在线 | 久久69av| 欧美在线一二 | 天天色天天草天天射 | 久久久午夜视频 | 免费国产黄线在线观看视频 | 国产一区免费观看 | 国内丰满少妇猛烈精品播 | 午夜18视频在线观看 |