Skip to main content
I frequently need to determine the MTF of a lens in object space rather than image space.  I would find it a big help to be able to have a check box for "object space, image space".





It is easier to present to customers in object space because they can relate to the dimensions. 





Also I often need to check the resolution over a focus range (in object space).  It's a bit tedious repeatedly working out the magnification at each focus range to scale the MTF into object space. 
Hi Ian,








Have you tried using a macro, or the ZOS-API to scale the MTF in object space automatically?





I can imagine you could have a user-extension that picks up your MTF settings and replots it scaled by the magnification of your system.





Does that make sense?








Cheers.
David,


I'm sure I could do that.  I just thought it would be a feature that most users would want.





Ian
I think that's a good idea Ian. It lets you specify the resolution of the lens in terms of the think being looked at, not the image at the detector. 





We will be adding an Ideas section to this forum soon, but until then we'll capture this idea in our internal feature request list.


Also I often need to check the resolution over a focus range (in object space).  It's a bit tedious repeatedly working out the magnification at each focus range to scale the MTF into object space.





A quick way is to reverse a system with internal tool and check MTF.

Thank you for adding this suggestion to the feature request list. Can you make that new feature compatible with a tilted object plane?



I routinely work with a model that has a tilted object plane, achieved by using a simple coordinate break. I use the MTF analyses (especially FFT MTF and MTF Map) and manually multiply by the magnification in Excel. But this is tedious because each field point has a different magnification, similar to Ian’s tedium about many focal positions of the object.



I think the MTF analyses (followed by multiplication by magnification) do handle the tilted object, even though I have to place the object and stop on opposite sides of the coordinate break and use ray aiming. In some cases, the tilted object is viewed through a mirror.



These models are just complicated enough (at least to me) that I feel a need to double-check the MTF calculations. The MTF results are only similar to Geometric Image Analysis results (with a resolution target file) and similar to results when I use multiple object distances to simulate the tilted object instead of the tilted object itself. But, there are still nagging differences.



Could you confirm that these cases are properly handled, assuming I do my share of the work correctly?




Andrey,



You mean the little blue button tool which is often used to reverse a lens element?  That can be used for the whole lens but it's not "quick". 





  1. You have to remember to adjust the aperture setting.  If it's set to image space f/# you have to change it to object space NA and do a calculation or change it to "float by stop size" before reversing.


  2. You have to redefine the field since object is now image and vice versa, and also suffer repeated "cannot determine object coordinates" error message.


  3. You can't include the object space air gap (surface 0 thickness) in the reversing process so you first have to insert a dummy surface for surface 0 and make the object distance surface 1.


  4. If you want to change the object distance (say 10m to 8m) and refocus in a normal set up you can simply do a "quick focus" to adjust the lens to sensor position (ie final air gap).  When reversed you can't simply quick focus what is now the object position (surface 0 thickness).  You first have to set up a merit function and define surface 0 to be a variable.  And after all that you are optimising a lens with a very slow image conjugate which is not ideal.




Alan, It's good to see someone else wants this as well!



A quick drop down menu of image space or object space to reformat the dimensions based on paraxial magnification factor sounds like it should be easy.  I've been trying to think of possible issues.  I guess any system where the magnification is uncertain.  For example, a fish eye lens since the magnification is not a constant with field.  This would need a disclaimer in the manual.






Ian,





Sure these steps can be difficult. But I used them before.


Another option I used was to make additional reverse configuration with pickups.








Of course if it can be done by a simple selector it will be great.

Please add my vote for this :-)




I need this as well. 





In the meantime, could someone guide me in the right direction for using the ZPL to get MTF scaled to object space?


Hi Fredrick,



You can perform work on the MFT using the GETMTF keyword and looping through the frequencies. So, briefly, if you want to do any kind of manipulation on an MTF that has a response out to, say, 50 cycles/mm, you'd have a loop like this:





for i, 1, 1, 50

getmtf i, 0, nfld(), 1, 1, 1

print 'tan', vec1(0)

print 'sag', vec1(1)

! insert your manipulations here

next i



Except for the for loop, this is just the example from the GETMTF help page, which explains the use of the function. For a given frequency and other inputs, it returns the tangential and sagittal data requested. You can process it as it reads in or after you have the whole vector set if you'd rather just save to a different array as you read the values in.


Reply