top of page
  • Ed Dozier

Keeping up with MTFMapper: any MTF you Want

Since I use it so much, I like to keep readers aware of new features in the MTFMapper program available here, written by Frans van den Bergh. As of this writing, his latest version is 0.6.18. My own favorite features of this program are focus measurement and 2-D resolution plots. I suspect that many users are big fans of being able to make their own MTF contrast plots, however.

MTF contrast plots are by far the most popular way to compare lenses, and they’re still basically the only way to get lens performance data from most manufacturers. If you keep up with Roger Cicala at, you’ll know that he always includes these plots in his lens reviews. Roger has started to always include these MTF contrast plots at resolutions up to 50 lp/mm. This decision is probably driven by modern camera sensors having so much more resolution than in times past; MTF30 just doesn’t cut it anymore.

The MTF contrast plots provide a quick analysis of the level of percent lens contrast at a particular resolution; they start at the lens center, and extend to the corner of the field of view. They traditionally measure in both the meridional and sagittal (tangential) directions.

MTFMapper 0.6.18 now lets you produce MTF contrast plots with your choice of resolutions! Instead of its default of 10 lp/mm and 30 lp/mm, you now get to pick what resolutions you want plotted. But wait, there’s more. Now, you can add a third plot at yet another selectable resolution.

Sample MTF contrast plot at 10, 30, and 50 lp/mm

To produce a plot like the sample shown above, you need a photograph of a resolution chart. MTFMapper is very flexible in what your chart design looks like; it basically only needs to see black rectangular shapes (or even trapezoids) against a light background. The program locates the straight edges of the rectangles and takes a measurement of every edge. Once you open the desired chart photos and let the program crunch the measurements, select the “lensprofile” of your photo to see the MTF contrast plots.

Configure MTFMapper for MTF contrast plots

Before you can produce the contrast plots, you need to tell the program what you want. The Preferences dialog shown above demonstrates how you provide that information. Your answers would be garbage unless you enter the correct “pixel size” microns for your camera.

You can see above that I added the “lp1”, “lp2”, and “lp3” arguments to get all three MTF contrast plots. I wanted the “10”, “30”, and “50” lp/mm measurements. You’re free to select 1, 2, or 3 plots at resolutions of your choice.

The program won’t stop you from selecting something like “—lp3 60” to get a 60 lp/mm plot. Not many of today’s lenses/sensors can perform at this level, but if a manufacturer will make them, then MTFMapper could measure it.

Just for fun: MTF contrast plot at 10, 40, and 60 lp/mm. 105mm f/2.8 Micro-Nikkor

The 105mm Micro-Nikkor measurement above looks pretty bad on that green plot, until you realize that it’s at 60 lp/mm. This is using the Nikon D610 (5.95 micron pixels).

I wanted to mention that you can get the MTF contrast information for a particular edge in a particular location in the field of view, if you wish. For this information, you’d select the “annotated” information for your photo.

Locate the edge you want to analyze, and then left-click the cyan-colored measurement. A plot will get displayed. You can hold the “shift” button down and get up to 3 plots of 3 edges to be displayed at once.

The dialog is called “SFR/MTF curve”. The “SFR” letters stand for “Spatial Frequency Response”, and that’s a synonym for “Modulation Transfer Function”.

MTF curve details for a single edge in the resolution chart

The shot above shows how you can zero in on a single edge for very detailed analysis. In this example, I was interested in the “MTF30” (30% contrast) frequency in the meridional direction, so I dragged the gray bar to where it displayed the contrast “0.299”, and that corresponds to a frequency of 0.4 cycles per pixel. Knowing the sensor pixel size (5.95 microns), the 0.4 c/p frequency value can be converted into “line pairs per millimeter” resolution as follows:

Lp/mm = (c/p) * V_Pixels / V_mm, where the sensor is 4016 X 6068 pixels, 24.0 mm X 35.9 mm

MTF30 lp/mm = .4 * 4016 / 24 = 66.9

Similarly, the MTF50 lp/mm on this edge (50% contrast) would be 0.287 * 4016 / 24 = 48

You can save the plot image (click “Save image”) and you can also save the plot data as “comma-separated” data for use in Excel.

Other new MTF Mapper Features

This version of the program, when you use the newest resolution chart design at the recommended shooting distance, lets you get very detailed information about how your camera is aligned to the chart.

Newest resolution chart with the round “fiducials”

The example shot above (taken from Frans’ documentation) shows how you can get feedback about how the chart is oriented, compared to your camera sensor. The smaller roll, pitch, and yaw readings you can get, the better-aligned the chart is.

As I already mentioned, the MTFMapper can use older resolution charts for performing resolution analysis. If you print the newest resolution chart, however, you can get additional features.

In the sample shown, the “Yaw = 2.68” indicates that the chart is rotated about a vertical axis such that the right-hand side is further from the camera than the left-hand side. If you have trouble reliably mounting your chart in front of your camera, then this feature could be really useful to you.

Please don’t forget to read the “help” documentation that Frans includes with his program. It is packed with useful insights into the “how and why”.


If you have the inclination, this newer version of MTFMapper should enable you to compare your own lens copy to other web sites, when they only provide MTF contrast plots. Keep in mind that some web sites (like LensRentals) only measure the lens and don’t include the camera sensor. If this is the case, then your own measurements won’t look as good; the camera sensor always drags the measurements down a little bit.

Thanks once again, Frans.

Recent Posts
bottom of page