top of page
  • Ed Dozier

Using MTF Mapper 0.6.3 New Features

The MTFMapper program that I use to measure lens resolution is constantly improving and learning new tricks. I thought it would be a good time to show you some of its new features that aren’t too obvious to the casual user.

If you aren’t familiar with MTFMapper, then I suggest you take a look at a previous article I made for it here. This program is authored by Frans van den Bergh, and is roughly the equivalent of the Imatest program, except that it’s free.

The features I’m going to show you are in the new Windows 64-bit version 0.6.3. This version allows use of very large files that are beyond the limits of Frans’ 32-bit versions.

One thing I should mention is that I am still using the previous design of the lens resolution target. The new MTFMapper program still accepts it, but there is a newer chart design that is slightly more accurate at the very center of the chart (due to the “hourglass” shape of the middle target) and is more forgiving with chart rotation errors. I made a giant “A0” print of the earlier resolution target file on quality glossy paper and had it subsequently dry-mounted into a picture frame that I can hang where I want. The target files are also supplied by Frans at his web site (consult the link above).

My “A0” size vintage resolution chart design

It was bit of a pain and pricey to make my large, mounted, and framed chart. I haven’t yet managed to talk myself into abandoning it. I did print and mount a smaller new-style resolution chart that I use when I can get close enough to fill the frame with some of my lenses.

Newer resolution chart design (with measurements on it)

I should also mention that bigger is better. Obviously. In this case, I’m referring to the resolution target. To get truly useful results, you want to take lens resolution measurements at the same distance from which you shoot regular photographs. For my Sigma 150-600mm lens, this means from about 60 feet away. You need a pretty big chart to be able to do that. For wide-angle lenses, it takes a huge target to get very far away from it and still fill the image frame (which once again means you need a big chart). You get the picture. Everybody by now knows I can't resist using puns at every possible opportunity.

A few program versions back, Frans changed his MTFMapper so that it no longer sets an automatic threshold value for locating target edges. As a result, you’ll probably need to change the value his program will otherwise use. For my own photographs, the ideal threshold value is 0.2. I set this in the “Settings, Preferences” dialog, which is the same place where you need to tell MTFMapper the size of your camera’s pixels. If you fail to do this step, you may discover that it refuses to measure many target edges.

MTFMapper 'Settings' dialog showing the plot 'Scale' slider and 'Threshold' value

In the picture above, note that I set the “Threshold” value to 0.2. For my photographs, this gets me the same results that the older versions of the program produced via its “auto-threshold” functionality. Note that I typically change my camera meter to use exposure compensation of about “+.7”, to get the chart white values to look reasonable in a photograph. Even in this day and age, camera meters can be a little stupid; the photographer still needs to supply the brains. The "Threshold" value tells the MTFMapper program how much of a contrast change is required to consider what it sees to be a valid target edge.

By the way, the "Arguments:" box shown above is where you can type in custom arguments for the MTFMapper program, which are the commands that look like "--myargument myvalue".

Measurement Plot Scaling

The first new MTFMapper feature I want to discuss is measurement scaling. For several program versions, the default has been to start the resolution measurement plot scale at zero. My own preference is to “auto-scale" the plot, so that chart resolution values stay strictly within the range of actual measured values. Your own preferences may differ. Frans now lets the user decide, so now you’ll find a slider in the “Settings” dialog called “3D plot z-axis relative scale factor”. If you slide it all the way to the right, then it will “auto-scale” the plot; if it’s at the left side, then the scale will start at zero instead. You can see in the picture above how I have the slider set. By the way, the slider is used for both the “2D” grid plot and the “3D” grid plot scaling.

Auto-scaled 2-D plot of the resolution target

3D Grid (Meridional) plot using "auto-scale" for an 85mm lens at f/2.8

3D Grid (Meridional) plot using "zero-scale" for an 85mm lens at f/2.8

The pair of plots above demonstrate the difference between auto-scale and zero-based scale. I prefer the auto-scale, because it maximizes the differences in measurements and it also shows what the minimum resolution measurement value is, in a simple way. The 0-based type of scale makes it too difficult for me to determine the minimum measured resolution values. I always select the "Line pairs per mm units" in the Settings dialog; otherwise, it will use "cycles per pixel" units.

Automatic MTF Curve Plotting for Any Measured Target Edge

The next new MTFMapper feature I want to cover is the ability to dynamically produce a chart of a selected measured edge of a square from the “Annotated” picture of the resolution target, as seen below.

MTF Curve from clicking on a resolution measurement value

As you can see in the picture above, a plot that shows contrast and frequency data from a single edge measurement in your “Annotated” picture can be generated from a single mouse-click. You merely find the edge of interest and click on the “cycles per pixel” (c/p) value to get the plot. The Annotated picture always displays "cycles per pixel" measured values, even when you have set "lines per mm" for your plot units.

This plot has the ability to show you the frequency measurement for the entire MTF range (not just MTF50). To get the answers, you slide the vertical gray bar along the horizontal “Frequency (c/p)” direction and the chart will update the “contrast” value, which is also the MTF value if you multiply it by 100.

Once the curve dialog is displayed, you can click on another edge measurement to replace the plot. Once the plot is displayed, you can hold the shift key and select an additional edge measurement that you want to compare, if you wish, such that both edge measurements are plotted together (in two different colors).

Chart shows a frequency of .308 cycles/pixel at MTF30


Frans is busy working on new features and refining existing program features all the time. If you want to track his progress, you might be interested in this link. Beware that most of Frans’ blogs are heavily dosed with matrix algebra and fast Fourier transforms; they're not for the feint of heart.

If you have an interest in squeezing the maximum quality out of your camera gear, then you should probably try out this software. It will enable you to get the best possible focus calibration and resolution measurements from your cameras and lenses at a minimal cost to you. But only if you take the time to print and mount the quality target files that Frans has designed and provided.


Recent Posts
bottom of page