Hi Ling,
I understand that you want to apply a low-pass Gaussian filter to your image at under 1 cycle per degree (cpd). Here's how to determine the appropriate sigma for the imgaussfilt function in MATLAB:
1. Calculate the desired cutoff frequency in pixels:
- Convert the cutoff frequency from cpd to pixels using the visual angle.
- For a visual angle of "theta" degrees and image resolution of "R" pixels, the frequency in pixels per degree is "R / theta".
2. Convert to standard deviation:
- Use the relationship between the standard deviation (sigma) and the cutoff frequency. The standard deviation in pixels is approximately given by: "sigma = R / (theta * 2 * pi * 1.5)"
Here's an example MATLAB code for your reference:
frequency_pixels = (image_resolution / visual_angle) * cpd;
sigma = image_resolution / (visual_angle * 2 * pi * 1.5);
filtered_image = imgaussfilt(input_image, sigma);
title('Low-pass Filtered Image');
For more details on Gaussian filtering, refer to the following MathWorks documentation:
Hope this helps.
Regards,
Nipun