Автоматическое обнаружение пиков БПФ на изображении: PythonPython

Программы на Python
Ответить
Anonymous
 Автоматическое обнаружение пиков БПФ на изображении: Python

Сообщение Anonymous »

Обозначения БПФ Изображение БПФ
У меня есть это изображение, и я хочу подавить пики на этом изображении, которые представляют собой царапины на исходном изображении (но это не главное) . Все, что я хочу, это создать алгоритм, который автоматически идентифицирует пики на изображении, а затем подавляет их (сделайте его равным 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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»