/* FFT2fltr.c */ #include #include #include #include "mypgm.h" #include "FFT1.h" #include "FFT2.h" void lowpass_filtering( ) /* ex. lowpass filtering */ { int i, j, limit; printf("\nLowpass filtering is applied to FFT coefficients.\n"); limit = num_of_data / 8; for (i = 0; i < num_of_data; i++) { for (j = 0; j < num_of_data; j++) { if ((limit < i) && (i < (num_of_data - limit)) || (limit < j) && (j < (num_of_data - limit))) { data[i][j] = 0.0; jdata[i][j] = 0.0; } } } } main( ) { load_image_data( ); /* Input image load */ make_original_data( ); /* FFT arrays generation */ FFT2(1); /* 2-d FFT */ lowpass_filtering( ); /* filtering in frequency domain */ FFT2(-1); /* 2-d inverse FFT */ make_output_image( ); /* Image generation after IFFT */ save_image_data( ); /* Output image save */ return 0; }