''' Učitati sliku peppers.png i filtrirati je u frekvencijskom domenu sa idealnim VF filtrom nastalim pomoću idealnog NF filtra sa parametrom D0=50. Prikazati usputne slike. ''' import plotly.express as px from skimage import io import numpy as np def ideal_nf(H_size,D0): u = np.arange(H_size[0]).reshape(-1,1) - np.floor(H_size[0]/2) v = np.arange(H_size[1]) - np.floor(H_size[1]/2) D = np.sqrt(u**2 + v**2) H = D <= D0 return H img = io.imread('peppers.png') fig = px.imshow(img, color_continuous_scale='gray') fig.show() IMG = np.fft.fftshift(np.fft.fft2(img, s=(2*img.shape[0],2*img.shape[0]))) fig = px.imshow(np.log(np.abs(IMG)+1), color_continuous_scale='gray') fig.show() #VF Filtriranje H1 = 1 - ideal_nf(IMG.shape, 50) fig = px.imshow(np.abs(H1), color_continuous_scale='gray') fig.show() #filtriranje IMG1 = IMG * H1 fig = px.imshow(np.log(np.abs(IMG1)+1), color_continuous_scale='gray') fig.show() img1 = np.real(np.fft.ifft2(np.fft.ifftshift(IMG1))) img1 = img1[0:img.shape[0],0:img.shape[1]] fig = px.imshow(img1, color_continuous_scale='gray') fig.show()