program crabnebula use kind_defs use FourierTransform use ImageProc implicit none integer, parameter :: N = 2048 real(dbl) :: img(N,N) complex(dbl) :: c2(N,N) integer :: i, filter(N,N) print *, '***************************************************' print *, ' Doing image-filtering on the Crab Nebula.' ! Loading image of Crab Nebula: print *, 'Loading image...' call importimage('Data/Crab.dat', img) print *, 'Doing 2D-FFT...' c2 = fft2(img) print *, 'Saving Fourier-Image...' call saveimage('CrabFFT.dat', abs(c2)) ! Design filter: filter = roundfilter(N, N, 300) call saveimage('CrabFilter.img', real(filter,kind=dbl)) ! Do the filtering: print *, 'Filtering...' c2 = filter * c2 img = real(ifft2(c2)) ! Save the filtered image: print *, 'Saving image...' call saveimage('Filtered.dat', img) end program crabnebula