image-processingcomputer-visionsimulationmodeling

How to computationally model the output of an idealized sensor given its Modulation Transfer Function?


Lets say I have an optical sensor that has a resolution of N by M, and I want to model the output of such a sensor given another image whose resolution is some simple factor larger than the resolution of my sensor. I want, assuming an idealized lens scenario, to model what the output of such a sensor if we know the Modulation Transfer Function (MTF) of the sensor. What is the procedure to use such a function to actually model what the output of the sensor given a hypothetical input image and resolution of the sensor? Does this even make sense to do/ is it even possible?

Would I have to calculate the spacial frequency of the image beforehand? if so I wouldn't understand what that would mean logically/physically. would I just be calculating the contrast between each and every pixel or something? I can't even wrap my head around how you could perform a transform from input to output using a MTF, as the input requires spacial information from the world.


Solution

  • I now understand how to computationally model the output of an idealized sensor given its Modulation Transfer Function.

    The modulation transfer function is the measure of discernible contrast, or a function of discernible spacial frequency at a distance from a sensor. The MTF is in the frequency domain, and does not contain a complex phase component (that is the Optical Transfer function). MTF = the Forward Fourier Transform of the Point Spread Function. A point spread function is modeled computationally as a 2D blur kernel, so our goal here is to transfer the MTF into a PSF (aka a blur kernel, measure of how light spreads from a source in an image, something that works like a Gaussian kernel).

    In order to do this, the Inverse Fourier Transform needs to be done on the MTF, this will give you the PSF you need, and you can use this in both directions (apply a vertical and horizontal kernel to one image). MTFs may be given in function or cycles/magnitude array, if given a function you will need to transform it into a cycles/magnitude array, choose the cycles you want to find the spacial frequency magnitude for and plug in the values to the MTF. This array of cycle/magnitude pairs can then be acted upon by the IFFT which will result in a PSF you can use computationally.

    Additionally one can transfer your input image into the frequency domain to directly apply the MTF, though if any other spacial calculations will need to be done you will need to transform it back.