diff --git a/SingleImageFourierTransform.cpp b/SingleImageFourierTransform.cpp index 5b73aa7bc0885d04ffb3d2d380aabd3e85b57abf..13cf9094adf40b4fdd35254ff2ed5275c4d5abc1 100644 --- a/SingleImageFourierTransform.cpp +++ b/SingleImageFourierTransform.cpp @@ -118,16 +118,14 @@ int main() writepng("Images/check_before_scaled.png", result_data, image_width, image_height); - // --------------------------- LOWPASS + // --------------------------- Apply Gaussian Blur + double sigma = 15; for (long i = 0; i < image_length; i++) { int x = i % image_width - image_width / 2; int y = i / image_width - image_height / 2; - if (x * x + y * y > image_height * image_height / 400 && !(x == 0 && y == 0)) - { - signal_t[image_switch_index(i, image_width, image_height)][0] = 0; - signal_t[image_switch_index(i, image_width, image_height)][1] = 0; - } + signal_t[image_switch_index(i, image_width, image_height)][0] = exp(-(x * x + y * y) / (2 * sigma * sigma)) * signal_t[image_switch_index(i, image_width, image_height)][0]; + signal_t[image_switch_index(i, image_width, image_height)][1] = exp(-(x * x + y * y) / (2 * sigma * sigma)) * signal_t[image_switch_index(i, image_width, image_height)][1]; } for (long i = 0; i < image_length; i++) @@ -135,14 +133,14 @@ int main() result_data[i] = own_abs_2(signal_t[image_switch_index(i, image_width, image_height)]) / image_length; } - writepng("Images/check_lowpass.png", result_data, image_width, image_height); + writepng("Images/check_after.png", result_data, image_width, image_height); for (long i = 0; i < image_length; i++) { result_data[i] = d2uc_converter(own_abs_2(signal_t[image_switch_index(i, image_width, image_height)]) / image_length); } - writepng("Images/check_lowpass_scaled.png", result_data, image_width, image_height); + writepng("Images/check_after_scaled.png", result_data, image_width, image_height); fftw_execute(backward_plan); @@ -151,56 +149,7 @@ int main() result_data[i] = d2uc_converter(own_abs_2(signal_s[i])/image_length/image_length); } - writepng("Images/result_lowpass.png", result_data, image_width, image_height); - - // ----------------------------- HIGHPASS - for (long i = 0; i < image_length; i++) - { - signal_s[i][0] = sqrt(image_data[i]); - if (bAmplitudeWithPhase) - { - signal_s[i][1] = (double)phase_data[i] * 2 * M_PI / 256; - } - else - { - signal_s[i][1] = 0; - } - } - fftw_execute(forward_plan); - - for (long i = 0; i < image_length; i++) - { - int x = i % image_width - image_width / 2; - int y = i / image_width - image_height / 2; - if (x * x + y * y <= image_height * image_height / 400 && !(x == 0 && y == 0)) - { - signal_t[image_switch_index(i, image_width, image_height)][0] = 0; - signal_t[image_switch_index(i, image_width, image_height)][1] = 0; - } - } - - for (long i = 0; i < image_length; i++) - { - result_data[i] = own_abs_2(signal_t[image_switch_index(i, image_width, image_height)]) / image_length; - } - - writepng("Images/check_highpass.png", result_data, image_width, image_height); - - for (long i = 0; i < image_length; i++) - { - result_data[i] = d2uc_converter(own_abs_2(signal_t[image_switch_index(i, image_width, image_height)]) / image_length); - } - - writepng("Images/check_highpass_scaled.png", result_data, image_width, image_height); - - fftw_execute(backward_plan); - - for (long i = 0; i < image_length; i++) - { - result_data[i] = d2uc_converter(own_abs_2(signal_s[i]) / image_length / image_length); - } - - writepng("Images/result_highpass.png", result_data, image_width, image_height); + writepng("Images/result.png", result_data, image_width, image_height); delete[] result_data; free(image_data);