How to Convert cutoff_frequency_ratio to Cycles/Pixel in Butterworth Filtering in scikit-image

I'm employing the butterworth filter function from skimage.filters, as detailed in its source code here . My primary goal is to understand the relationship between the cutoff_frequency_ratio parameter and the spatial frequencies, specifically in terms of "cycles per pixel", which I intend to later convert to "cycle/degree" for vision-related applications.

The documentation mentions that the cutoff_frequency_ratio determines the cut-off's position relative to the FFT's shape and accepts values in the range [0, 0.5]. However, I'm struggling to discern how this parameter translates to "cycles per pixel" or "cycles per image".

To illustrate, if cutoff_frequency_ratio is set to 0.02, what would its equivalent be in “cycles per pixel”, particularly when considering varying image dimensions?

I'd greatly value any insights or explanations on this matter. Thank you for your time...


  • I infer from the function's documentation that the maximum value for cutoff_frequency_ratio being 0.5 is tied to the Nyquist criterion , suggesting the highest discernible frequency is half the sampling rate. So this cutoff value actually cylce/pixel.