• site home
  • blog home
  • galleries
  • contact
  • underwater
  • the bleeding edge

the last word

Photography meets digital computer technology. Photography wins -- most of the time.

You are here: Home / The Last Word / What’s MTF50 = x look like: sim pix

What’s MTF50 = x look like: sim pix

April 21, 2015 JimK 6 Comments

Last week, I wrote this post on producing images that show visually the effect of image capture blur on Bayer-CFA cameras. I briefly discussed this simulation-based approach:

Start out with a slanted edge. Dial in some diffraction, some motion blur, some defocusing, take the captured image, run it through a slanted edge analyzer, and get the MTF50. The, leaving the simulator settings the same, run a natural world photograph through the simulator. Do that with various simulated camera blur, and we’ll get a series of images that people can look at, and we’ll know their MTF50.

I went on to discuss ways to do similar captures with real, not simulated cameras. I’ve decided to pursue the simulator approach. It allows me to have identical scenes with different amounts and kinds of camera blur, and give me great freedom in the kinds of input images that I use.

However, there is a technical problem. Because of the way the simulator works, it needs an image of at least 8 times the linear resolution of the output image for accurate results at MTF50s of over 1000 cycles/picture height. That means that it’s not practical for me to simulate the entire capture of a full-frame camera, but only a crop from that capture. Even then, I need to go to extraordinary lengths to get sufficiently high resolution in my input images.

Let’s work through an example. I first computed MTF50 values for with pixel pitch set to 4.88 um (same as a7R or D800 or D810), and a simulated Zeiss Otus lens, at f/2.8 through f/16.

488umMTF50

I set up on this scene, shown captured by a 24mm lens (Leica 24mm f/3.4 Elmar-M ASPH, if you care) on a Sony a7II:

_DSC1512

Then I put a Leica 180mm f/3.4 Apo-Telyt on the camera, focused manually, set the aperture to f/8, and made a three-row series of exposures. I stitched them in AutoPano Giga, and got this 14825×8037 pixel result:

House180cr

 

Consider it a crop from the full frame first image represented by the 24mm picture.

Then I ran the 14825×8037 image through the camera simulator with pixel pitch set to 4.88 um (same as a7R or D800 or D810), and a simulated Zeiss Otus lens, at f/2.8 through f/16. I set the reduction factor to 8, so the resulting images were 1853×1005 pixels. Note that the ratio between the focal length I used for the pano is about eight times the 24mm lens I used for the overall FF shot; that’s the same as the reduction ratio.

I made some 1:1 crops from the images, and blew them up to 300% just like I do when I’m doing lens testing.

f/5.6
f/5.6 — MTF50 = 1589
f/11
f/11 — MTF50 = 1354
f/16
f/16 — MTF50 = 1093

I didn’t include the f/2.8, f/4, and f/8 images because they were so similar to the f/5.6 one.

The real test of what sharpness is acceptable for printing is to make some test prints. Therefore, I encourage anyone who wants to know what 36MP prints with MTF50s between 1000 cycles/picture height or so and 1600 cycles/picture height or so download the files,  resize them — without resampling! — to your printer’s native driver resolution (360 ppi for Epsons, 300 ppi for Canons) and print them. Then look at them to find what is your own personal minimum acceptable sharpness. Note the f-stop. Now go to the table above and note the MTF50 associated with that f-stop. Congratulations! You’ve just found your minimum acceptable MTF50.

 

Note that I’m using gradient-corrected linear interpolation, which is not the most sophisticated demosaicing algorithm in the world.

Comments and questions are welcome.

The Last Word

← 2 180mm lenses on the Sony a7II Simulating motion blur: MTF50 and pictures →

Comments

  1. Jack Hogan says

    April 23, 2015 at 12:31 am

    Hi Jim, it’s taking a while for the last couple of posts to sink in. Two questions:
    1) What direction is the edge (or edges)?
    2) Wouldn’t the natural image capture end up with twice the diffraction, twice the defocusing etc. after having gone through the simulator?
    Jack

    Reply
    • Jim says

      April 23, 2015 at 7:04 am

      Jack,

      1) What direction is the edge (or edges)?

      Horizontal. Or, off-horizontal, if you know what I mean. There’s only one edge.

      2) Wouldn’t the natural image capture end up with twice the diffraction, twice the defocusing etc. after having gone through the simulator?

      That’s one of the reasons the original image is 8x the linear resolution of the output image

      Jim

      Reply
  2. Jack Hogan says

    April 23, 2015 at 10:34 am

    Ok, thanks Jim. Follow on question: I assume diffraction blur is pretty well textbook. How about defocus – what model and what strength? Or did you use defocus as a gaussian plug (not a bad idea up to MTF50, not so good after that)?
    Jack

    Reply
    • Jim says

      April 23, 2015 at 11:43 am

      Defocus wasn’t used in the runs that I’ve been doing for the last couple of weeks, but when I do do it, it’s a double application of a pillbox kernel at a kernel size that is variable.

      Reply
  3. Jack Hogan says

    April 24, 2015 at 7:43 am

    Indulge me Jim, still trying to wrap my head around what we are looking at. I understand you are not including aberrations, right? Linear MTF50 for diffraction of green light (0.55um) at f/5.7 and 4.88um square pixel aperture (alone, no aberrations) is about 2000 lp/ph, independently of lens used, correct? So where does 1588.7 lp/ph above come from?

    I get very close to that in the center of an AAless FF sensor only if axial aberrations are included (‘defocus’ types = SA and CA, worth about 0.3lambda OPD).
    Jack

    Reply
    • Jim says

      April 24, 2015 at 8:57 am

      I am including aberrations with my very simple Otus model:

      if self.otusFlag
      self.focusBlurRadius = 0.5 + 8.5 / self.f; %focus blur radius in um for double pillbox
      end

      Where self.f is the f-stop. I’m using the same double pill box kernel that I use to simulated defocusing.

      Details here: http://blog.kasson.com/?p=5821

      And please, keep on keeping me honest here. The code is a bit messy now, but I can send it to you when I get is cleaned up if you’d like.

      Thanks,

      Jim

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

May 2025
S M T W T F S
 123
45678910
11121314151617
18192021222324
25262728293031
« Apr    

Articles

  • About
    • Patents and papers about color
    • Who am I?
  • How to…
    • Backing up photographic images
    • How to change email providers
    • How to shoot slanted edge images for me
  • Lens screening testing
    • Equipment and Software
    • Examples
      • Bad and OK 200-600 at 600
      • Excellent 180-400 zoom
      • Fair 14-30mm zoom
      • Good 100-200 mm MF zoom
      • Good 100-400 zoom
      • Good 100mm lens on P1 P45+
      • Good 120mm MF lens
      • Good 18mm FF lens
      • Good 24-105 mm FF lens
      • Good 24-70 FF zoom
      • Good 35 mm FF lens
      • Good 35-70 MF lens
      • Good 60 mm lens on IQ3-100
      • Good 63 mm MF lens
      • Good 65 mm FF lens
      • Good 85 mm FF lens
      • Good and bad 25mm FF lenses
      • Good zoom at 24 mm
      • Marginal 18mm lens
      • Marginal 35mm FF lens
      • Mildly problematic 55 mm FF lens
      • OK 16-35mm zoom
      • OK 60mm lens on P1 P45+
      • OK Sony 600mm f/4
      • Pretty good 16-35 FF zoom
      • Pretty good 90mm FF lens
      • Problematic 400 mm FF lens
      • Tilted 20 mm f/1.8 FF lens
      • Tilted 30 mm MF lens
      • Tilted 50 mm FF lens
      • Two 15mm FF lenses
    • Found a problem – now what?
    • Goals for this test
    • Minimum target distances
      • MFT
      • APS-C
      • Full frame
      • Small medium format
    • Printable Siemens Star targets
    • Target size on sensor
      • MFT
      • APS-C
      • Full frame
      • Small medium format
    • Test instructions — postproduction
    • Test instructions — reading the images
    • Test instructions – capture
    • Theory of the test
    • What’s wrong with conventional lens screening?
  • Previsualization heresy
  • Privacy Policy
  • Recommended photographic web sites
  • Using in-camera histograms for ETTR
    • Acknowledgments
    • Why ETTR?
    • Normal in-camera histograms
    • Image processing for in-camera histograms
    • Making the in-camera histogram closely represent the raw histogram
    • Shortcuts to UniWB
    • Preparing for monitor-based UniWB
    • A one-step UniWB procedure
    • The math behind the one-step method
    • Iteration using Newton’s Method

Category List

Recent Comments

  • JimK on How Sensor Noise Scales with Exposure Time
  • Štěpán Kaňa on Calculating reach for wildlife photography
  • Štěpán Kaňa on How Sensor Noise Scales with Exposure Time
  • JimK on Calculating reach for wildlife photography
  • Geofrey on Calculating reach for wildlife photography
  • JimK on Calculating reach for wildlife photography
  • Geofrey on Calculating reach for wildlife photography
  • Javier Sanchez on The 16-Bit Fallacy: Why More Isn’t Always Better in Medium Format Cameras
  • Mike MacDonald on Your photograph looks like a painting?
  • Mike MacDonald on Your photograph looks like a painting?

Archives

Copyright © 2025 · Daily Dish Pro On Genesis Framework · WordPress · Log in

Unless otherwise noted, all images copyright Jim Kasson.