Обозначения БПФ Изображение БПФ
У меня есть это изображение, и я хочу подавить пики на этом изображении, которые представляют собой царапины на исходном изображении (но это не главное) . Все, что я хочу, это создать алгоритм, который автоматически идентифицирует пики на изображении, а затем подавляет их (сделайте его равным 0).
from skimage.draw import disk
import matplotlib.pyplot as plt
original = plt.imread('orginal image.jpg')
plt.figure(figsize=(15,15))
plt.imshow(original)
plt.show()
import math
# Calculate the next power of 2 for both dimensions
next_power_of_2_x = 2 ** math.ceil(math.log2(original.shape[0] + 249))
next_power_of_2_y = 2 ** math.ceil(math.log2(original.shape[1]))
# Pad the array to the next power of 2 in both dimensions
f = np.pad(original, ((0, next_power_of_2_x - original.shape[0]), (0, next_power_of_2_y - original.shape[1]), (0, 0)))
f_hat = fft2(f, axes=(0, 1))
shifted = np.fft.fftshift(f_hat)
# magnitude and phase
mag=np.abs(shifted)
phase=np.unwrap(np.angle(shifted))
plt.figure(figsize=(10,10))
plt.imshow(np.log(1+np.linalg.norm(mag,axis=-1)),cmap='gray')
plt.show()
# strong peaks
mag_norm=np.linalg.norm(mag,axis=-1).copy()
rr,cc=disk((1024,1024),80)
mag_norm[rr, cc]=0
mag_norm[mag_norm
Подробнее здесь: [url]https://stackoverflow.com/questions/79148483/automatic-detection-of-fft-peaks-in-image-python[/url]
Обозначения БПФ Изображение БПФ У меня есть это изображение, и я хочу подавить пики на этом изображении, которые представляют собой царапины на исходном изображении (но это не главное) . Все, что я хочу, это создать алгоритм, который автоматически идентифицирует пики на изображении, а затем подавляет их (сделайте его равным 0). [code]from skimage.draw import disk import matplotlib.pyplot as plt original = plt.imread('orginal image.jpg') plt.figure(figsize=(15,15)) plt.imshow(original) plt.show()
import math
# Calculate the next power of 2 for both dimensions next_power_of_2_x = 2 ** math.ceil(math.log2(original.shape[0] + 249)) next_power_of_2_y = 2 ** math.ceil(math.log2(original.shape[1]))
# Pad the array to the next power of 2 in both dimensions f = np.pad(original, ((0, next_power_of_2_x - original.shape[0]), (0, next_power_of_2_y - original.shape[1]), (0, 0)))