diff --git a/Filtering_Padding.py b/Filtering_Padding.py index 1dc1773..e151a67 100644 --- a/Filtering_Padding.py +++ b/Filtering_Padding.py @@ -1,5 +1,4 @@ import cv2 -import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['simHei'] plt.rcParams['axes.unicode_minus'] = False @@ -7,42 +6,24 @@ plt.rcParams['axes.unicode_minus'] = False # 读取照片 image_zeropad = cv2.imread("file/zeropad.jpg", cv2.IMREAD_GRAYSCALE) -# 不填充 -dft_no_padded = np.fft.fft2(image_zeropad) -shift_no_padded = np.fft.fftshift(dft_no_padded) -sm_no_padded = np.abs(shift_no_padded) -pa_no_padded = np.angle(shift_no_padded) -mag_no_padded = np.log(1 + np.abs(sm_no_padded)) +# 设置填充区域大小 +top, bottom, left, right = 50, 50, 50, 50 -image_no_padded_dft = np.multiply(mag_no_padded, np.exp(1j*pa_no_padded)) -image_no_padded = np.abs(np.fft.ifft2(image_no_padded_dft)) +# 不填充 +image_no_padded = image_zeropad.copy() # 零填充 -rows, cols = image_zeropad.shape -pad_rows, pad_cols = rows * 2, cols * 2 -padded_zero = np.zeros((pad_rows, pad_cols), dtype=image_zeropad.dtype) -padded_zero[:rows, :cols] = image_zeropad - -dft_zero_padded = np.fft.fft2(padded_zero) -shift_zero_padded = np.fft.fftshift(dft_zero_padded) -sm_zero_padded = np.abs(shift_zero_padded) -pa_zero_padded = np.angle(shift_zero_padded) -mag_zero_padded = np.log(1 + np.abs(sm_zero_padded)) - -image_zero_padded_dft = np.multiply(mag_zero_padded, np.exp(1j*pa_zero_padded)) -image_zero_padded = np.abs(np.fft.ifft2(image_zero_padded_dft)) +image_zero_padded = cv2.copyMakeBorder( + image_zeropad, top, bottom, left, right, + borderType=cv2.BORDER_CONSTANT, + value=[0, 0, 0] +) # 原图填充 -padded_copy = cv2.copyMakeBorder(image_zeropad, 0, rows, 0, cols, borderType=cv2.BORDER_REPLICATE) - -dft_copy_padded = np.fft.fft2(padded_copy) -shift_copy_padded = np.fft.fftshift(dft_copy_padded) -sm_copy_padded = np.abs(shift_copy_padded) -pa_copy_padded = np.angle(shift_copy_padded) -mag_copy_padded = np.log(1 + np.abs(sm_copy_padded)) - -image_copy_padded_dft = np.multiply(mag_copy_padded, np.exp(1j*pa_copy_padded)) -image_copy_padded = np.abs(np.fft.ifft2(image_copy_padded_dft)) +image_copy_padded = cv2.copyMakeBorder( + image_zeropad, top, bottom, left, right, + borderType=cv2.BORDER_REPLICATE +) # 进行平滑滤波(均值滤波) kernel_size = (5, 5) diff --git a/Result_Photo_Filtering/1.All_Filtering.png b/Result_Photo_Filtering/1.All_Filtering.png new file mode 100644 index 0000000..b68fa76 Binary files /dev/null and b/Result_Photo_Filtering/1.All_Filtering.png differ diff --git a/Result_Photo_Filtering/1.All_Photo.png b/Result_Photo_Filtering/1.All_Photo.png deleted file mode 100644 index 9c98eda..0000000 Binary files a/Result_Photo_Filtering/1.All_Photo.png and /dev/null differ diff --git a/Result_Photo_Filtering/1.Copy_Padded.png b/Result_Photo_Filtering/1.Copy_Padded.png deleted file mode 100644 index ca921e7..0000000 Binary files a/Result_Photo_Filtering/1.Copy_Padded.png and /dev/null differ diff --git a/Result_Photo_Filtering/1.Copy_Padded_Filtering.png b/Result_Photo_Filtering/1.Copy_Padded_Filtering.png new file mode 100644 index 0000000..12635aa Binary files /dev/null and b/Result_Photo_Filtering/1.Copy_Padded_Filtering.png differ diff --git a/Result_Photo_Filtering/1.No_Padded.png b/Result_Photo_Filtering/1.No_Padded.png deleted file mode 100644 index 024affb..0000000 Binary files a/Result_Photo_Filtering/1.No_Padded.png and /dev/null differ diff --git a/Result_Photo_Filtering/1.No_Padded_Filtering.png b/Result_Photo_Filtering/1.No_Padded_Filtering.png new file mode 100644 index 0000000..68dbc25 Binary files /dev/null and b/Result_Photo_Filtering/1.No_Padded_Filtering.png differ diff --git a/Result_Photo_Filtering/1.Zero_Padded.png b/Result_Photo_Filtering/1.Zero_Padded.png deleted file mode 100644 index 1b186b3..0000000 Binary files a/Result_Photo_Filtering/1.Zero_Padded.png and /dev/null differ diff --git a/Result_Photo_Filtering/1.Zero_Padded_Filtering.png b/Result_Photo_Filtering/1.Zero_Padded_Filtering.png new file mode 100644 index 0000000..75833de Binary files /dev/null and b/Result_Photo_Filtering/1.Zero_Padded_Filtering.png differ