Film Flatness Test: 3-Holder Heatmap Comparison

Film Flatness Test: A First Quantitative Comparison of 3 Film Holders

This article documents an attempt to measure and compare film flatness in three film holders for DSLR scanning. The method uses depth-from-focus analysis with a macro focusing rail. Its accuracy is limited, so the results show trends and relative differences, not absolute values.

Why film flatness matters

Film flatness is the most common complaint in the DSLR scanning community. The film bows in the holder and the corners go soft. The physics is well understood: at typical scanning settings, depth of field is only a fraction of a millimeter. A bow of just 0.3 mm is enough to cause visible softness in the corners.

Plenty of opinions, no measurements

Forums and Reddit are full of comments about film flatness: “The corners are soft,” “Holder X is better than Y.” What you won’t find is measurement data. As far as our research goes, no one has quantitatively measured how far film deviates from flat in a holder and published the results. Every comparison relies on a subjective judgment of how sharp the scans look.

This article is an attempt to change that.

The test strip

Test strip: Kodak Gold 200, branches and leaves

The test strip: Kodak Gold 200, shot on an Olympus OM-2n with a Zuiko 50mm f/1.8 at f/5.6. A fairly dense negative with image detail spread evenly across the frame.

We used the same film strip and the same frame for every measurement. The choice of subject matters: the depth-from-focus method needs texture in the image (film grain, edges) to find the point of best focus. A uniformly bright or dark subject (sky, a wall, snow) doesn’t give a usable signal. Branches and leaves work well: dense, high in contrast and spread evenly across the whole frame.

Method A: The reflection check (qualitative)

The surface of the film reflects light. Hold the loaded film under a ceiling light and any unevenness shows up as distorted lines in the reflection. The method is simple and reveals fine detail, but it can’t be turned into numbers.

The same film strip in four holders, each photographed under the ceiling light:

Reflection pattern, Ausgeknipst

Ausgeknipst

Reflection pattern, Negative Supply

Negative Supply

Reflection pattern, Valoi

Valoi 360

Film with no holder, simply held by hand

Reference: the same film held by hand only, no holder

What you can see by eye: none of the holders keeps the film perfectly flat, and the reflection lines are distorted in all three. But all three do a visibly better job than no holder at all. Which one comes out on top is something the reflection shots can only hint at. The curvature can’t be quantified: whether the deviation is 50 or 500 microns is impossible to read from the reflection. Hence the second method.

How the three holders guide the film

The three holders we tested use different design principles to keep the film in position. That affects where the film can bow, and by how much.

Negative Supply: The base has a panoramic-format gate, and the film is guided only along its two long edges (top and bottom). Nothing guides it lengthwise. There are masks you slide in from below (for half frame, 35mm or panoramic), but even with a mask in place, the film stays free along its length. In practice, this means the film has the most room to sag in the middle of the gate.

Valoi: Each film format has its own holder, cast in one piece. The film is guided both across its width and along its length. You can’t see from the outside how the lengthwise guidance is built, because it’s integrated into the body.

Ausgeknipst: A combination of both approaches. Like the Negative Supply, the base has a panoramic-format gate and guides the film only along the edges. Interchangeable tops fit onto the base; they press the film down from above and guide it along its length as well. Without a top, the holder behaves like the Negative Supply design (edge guidance only). With a top, you get lengthwise guidance too.

What this means for the film edges: All three systems hold the film by exactly the area you’d need to leave exposed to capture the sprocket holes and edge markings. A holder that shows the edge can no longer grip the film there, and the control measurement further down shows where that leads: without a top plate, the same strip deviates from the plane 2.3 times more, at 381 µm RMS. With this type of design, full-border scans and flatness are mutually exclusive. If you want both, there’s no way around two sheets of anti-Newton glass, and you pay for it in speed, because every frame has to be loaded individually.

This difference in how the film is guided matters for the measurement: since the gate width varies from holder to holder, we limited the analysis to the inner 80% of the frame. The outer areas contain little image information and get cropped off when scanning anyway, so they aren’t included in the comparison.

Method B: depth-from-focus measurement (quantitative)

Mounted on a macro rail, the camera moves through the film plane in defined steps, taking a picture at each position. Each region of the image reaches peak sharpness in a different frame, depending on how far it is from the lens. From the position of that sharpness peak, you can calculate the height of the film surface at every point.

Setup

Measurement setup for testing film flatness

Measurement setup: camera on a macro rail, film holder on the light source. The Post-its under the light pad act as shims, evening out tiny height differences at the corners so the film plane sits parallel to the sensor.

Close-up of the macro rail with dial indicator

Close-up: macro rail with dial indicator, 0.1 mm steps

The details:

  • Camera: Sony ZV-E10
  • Lens: Carl Zeiss Jena Tessar 50mm f/2.8 on a macro bellows
  • Aperture: f/2.8 (wide open, for maximum sensitivity to focus shifts)
  • Macro rail: 0.1 mm steps, 21 frames per pass
  • Alignment: mirror method
Aligning the camera with a mirror

Mirror alignment: the reflection of the lens has to sit dead center so that the optical axis is perpendicular to the film plane

Analysis

A Python script handles the analysis. It divides each image into a grid and works out, for each cell, in which frame it is at its sharpest. From that, the height of the film surface can be calculated at every point. Two corrections follow. First, the overall tilt is subtracted (the sensor is never perfectly parallel to the film). Second, the lens’s field curvature is removed, so that only the topography of the film itself is left.

Three passes per holder, run in mixed order and averaged.

Technical details of the data processing

For the analysis, the script divides each image into a grid of 20 x 30 cells. For each cell, it calculates the Laplacian variance across all 21 frames, a measure of how much high-frequency contrast (film grain, edges) that cell contains. A cell is at its sharpest when the plane of focus lies exactly on the film surface.

The resulting sharpness curve has one peak per cell. Its position is found by three-point parabolic interpolation, which gives a finer Z resolution than the step size (0.1 mm). Next, a best-fit plane is fitted to the entire Z map and subtracted (tilt correction). When several holders are compared, the mean of all Z maps is subtracted as system bias (common-mode rejection). This removes the lens’s field curvature, which is identical in every measurement.

The analysis covers the inner 80% of the film frame. The edges are discarded: they contain little to no image information and get cropped off when scanning anyway.

The scripts are written in Python (numpy, opencv, matplotlib). If you’d like to review the code or rerun the numbers from the raw data, get in touch. If there’s justified criticism of the method, we’ll adjust the analysis and publish the corrected results.

Limitations and caveats: please read

This is not a scientifically accurate measurement.

The achievable measurement accuracy is around 100 micrometers. Typical film curl falls in the range of 80 to 500 µm. That puts the measurement right at the lower limit of its resolution.

Under no circumstances should the published values be read as absolute. They show trends and relative differences.

What was missing: a reference measurement with the film clamped between two sheets of Newton glass (perfect flatness = zero point). That’s what we would have needed, but we didn’t have any lying around. Instead, we built in a worst-case control: the film held only along the sprocket holes, without a top plate. If our method works, this value has to come out significantly worse than with the actual holders.

Worst-case reference: film without a top plate

Worst-case reference: film held only at the edges, no top plate, maximum sag

Results

Three runs per holder, averaged. Measured across the inner 80% of the frame, with the edges left out because each holder supports the film over a different width (see above). Lens field curvature was removed using common-mode rejection.

Holder PV (µm) RMS (µm)
Ausgeknipst 1102 163
Valoi 1382 175
Negative Supply 1708 202
Control without top plate 2309 381

PV = peak-to-valley: the largest difference between the highest and the lowest point.
RMS = root mean square: the average deviation. It’s a far more robust figure than PV, because a single outlier can’t skew the result.

Heatmaps

The heatmaps show the topography of the film plane. Red means the film bulges toward the lens, blue means it sags away from it, and white is the ideal plane. The scale is in microns.

Heatmap comparison of all three film holders

Three-holder comparison: red = film closer to the lens, blue = further away

Heatmaps: control measurement without a top plate next to the holders with top plates

Control measurement without a top plate (left): far more deviation than with the holders that have one

And here are the individual heatmaps, each averaged over three runs:

Ausgeknipst heatmap, averaged

Ausgeknipst, averaged over 3 runs

Valoi heatmap, averaged

Valoi, averaged over 3 runs

Negative Supply heatmap, averaged

Negative Supply, averaged over 3 runs

What the data tells us

Validation: does the method actually work?

The sprocket control (film without a top plate) shows RMS values 2.3x higher than the best holder. That makes it the single most important data point in the whole measurement: it confirms that the method picks up real differences in film flatness and that the results aren’t lost in measurement noise.

Ausgeknipst (RMS 163 µm)

The lowest RMS value in the test. The heatmap shows a fairly even distribution with no dominant hotspots. The interchangeable top presses the film down along the sides as well as along its length, and that shows up in the film being guided evenly. Run-to-run variation (how much the results differ when the same film is loaded again) came in at 176 µm, comparable to Negative Supply.

Valoi (RMS 175 µm)

Just behind Ausgeknipst. The heatmap shows slight wave patterns that may come from the S-curve guide in Valoi’s channel design: as you slide the film in, it runs through a curved channel. At 210 µm, run-to-run variation was a little higher than with the other two holders. Whether that’s down to the design or to the way the film is fed in can’t be determined from the data.

Negative Supply (RMS 202 µm)

The highest RMS value of the three holders. The heatmap shows more contrast than the other two, with areas of stronger curl standing out more clearly. Negative Supply only guides the film along its long edges, not along its length. That lack of lengthwise guidance could explain why the deviation in the middle of the gate comes out somewhat higher. At the same time, its run-to-run variation of 175 µm was the lowest in the test: the film sits consistently in the same position every time you load it.

The Comparison

Between the best and the worst holder there's a factor of 1.2x (163 vs. 202 µm RMS). In absolute terms, that's a difference of 39 microns, less than the thickness of a human hair.

To put that in perspective: at f/8, the aperture most people scan at, depth of field at the negative is around 500 microns. All three holders keep the film within that tolerance. At that aperture, a 39 µm difference won't be visible in a finished scan.

At wider apertures (f/4 or f/2.8, as found in high-end scanning setups), depth of field shrinks to under 200 µm. In that range the differences we measured could start to matter, but even then the effect is hard to separate from other sources of error (sensor alignment, lens field curvature, curl in that particular film strip).

What Do Real Scans from the 120 Holder Look Like?

The measurement above was done with 35mm film on the macro rail, wide open and with a single test strip. The four images below show what scans from our holder look like in an everyday workflow. Italian photographer Osea Costantini tested our 120 roll film holder in 6×6 format with his own black-and-white negatives, using his own scanning setup. We sent him the holders for testing.

Disclaimer: We sell some of the products mentioned here. Even so, this article is meant first and foremost as a helpful guide, not as a sales pitch.

We looked at the corners first, because when film bows in a glassless holder, that's where it goes soft first. In these scans, sharpness holds right out to the edge of the frame. You can see it clearly in the shot of the painter in the sunflower field: bottom right, the stitching on his jacket pocket is as sharp as the canvas in the middle of the frame, and bottom left, the veins in the sunflower leaves are clearly visible.

This isn't a measurement. The negatives are different from our test strip, the format is larger, and the files in this article have been downsized for the web. The images simply show what the results look like when someone digitizes their own film with the holder.

Bassist in a bow tie and suspenders, seated in an armchair, 6×6 scan by Osea Costantini
Portrait of a bassist in a flat cap, 6×6 scan by Osea Costantini
A bassist's hands on the strings and fingerboard, 6×6 scan by Osea Costantini
Painter with an easel in a sunflower field, 6×6 scan by Osea Costantini

Scans: Osea Costantini, 120 film in 6×6 format, digitized with our film holder and published with his permission. You can find more of his work on his YouTube channel.

The bottom line

All three holders keep the film measurably flatter than an unsupported film strip. The differences between them are small: the factor between the best and the worst result is 1.2x.

The products differ in plenty of other ways (materials, workflow, compatibility, price). Film flatness is just one factor among many, and on that one factor, the three holders we tested are close together.

A Note on the Setup

We measured at f/2.8 (wide open). That's not usual for scanning, since lenses perform worse wide open, especially in the corners. The reason for shooting wide open: depth of field has to be shallow enough for differences across the film plane to show up as measurable at all. At f/5.6 or f/8, the DoF would be too deep to resolve film curl. A 100mm macro at 1:1 magnification, stopped down slightly, would have been the better measuring tool, but we didn't have one available.

To the Community: Help Us Measure Better

This experiment was a first attempt with limited equipment. The method has weaknesses, which are documented above. If anyone in the community knows a more precise, affordable method (laser interferometry, moiré topography or something else), we'd love to hear about it. We'll repeat the tests and publish the raw data.

The goal isn't a marketing comparison. The goal is to improve our own design based on measured data.

Back to the blog

Leave a comment