Обработка изображения с помощью преобразования Фурье

Рейтинг: 1Ответов: 0Опубликовано: 10.03.2023

На вход поступает ихображение в формате RGB. Необходимо его обработать с помощью преобразования Фурье используя библиотеку. Далее наименьшие значения коофицентов(например, <=5) обнуляются и происходит обратное преобразование. В результате мы должны выделить детали на изображении.

def fourier(img_rgb):

    plt.figure(figsize=(6.4*2, 1.8*2), constrained_layout=False)

    img_с1 = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
    img_c2 = np.fft.fft2(img_с1)
    # обрабатываем второе изображение. Берем [спектральный]коофицент, если он меньше нашего значения(например, 5), то зануляем(0). Выводим новое изображение. 
    img_c2[abs(img_c2) <= 0.5] = 0.0
    img_c4 = np.fft.ifft2(img_c2)
    img_c5 = img_с1 - img_c4

    plt.subplot(151), plt.imshow(img_с1, "gray"), plt.title("Original Image")
    plt.subplot(152), plt.imshow(np.log(1+np.abs(img_c2)), "gray"), plt.title("Spectrum")
    plt.subplot(153), plt.imshow(np.log(1+np.abs(img_c4)),"gray"), plt.title("Image after Fourier")
    plt.show()

Однако, получается, что на изображении выделяются помехи, а детали практически не видны.

Изображение Лена обработанное с помощью Фурье преобразования. Обнулены спектральные коофициенты, которые <= 5, сделано обратное преобразование и выделены детали изображения:

Правильно выполнено Фурье преобразование?

Ответы

Ответов пока нет.