Imaging and color measurement · Reports
CFA flat-field response: archive screening and spatial characterization
Summary
This report tests whether a centered radial model describes an archived integrating-sphere capture series. It retains the four CFA positions independently, screens for headroom before normalization, and measures spatial response on three accepted frames.
The primary accepted frame reaches 0.480104 green response relative to its center and produces 19.648% green corner-field asymmetry. The matched repeat measures 19.996%; the third accepted exposure measures 16.087%. Because the four corner blocks are at equal radius, those values exclude a radius-only scalar model for the measured capture-system field. They do not identify which component caused the departure.
The experiment this would ideally have been
A camera-only shading characterization would use an independently mapped, stable source; retain source radiance and spectrum; acquire unsaturated repeats at several apertures; rotate source and camera relative to one another; verify dark and linearity controls; and repeat with matched lens/body substitutions to separate optical and sensor-side terms.
The retained work was not designed to isolate those components. It was an earlier course project whose 52 sphere frames, dark controls, and exposure metadata survived, but whose source-uniformity map, rotation controls, alignment record, and repeatability plan did not. The analysis can recover a bounded composite-field result. It cannot reconstruct controls that were never recorded.
What the archive supports
The screening table contains 52 neutral public sample identifiers:
| Aperture | Retained frames | Accepted | Rejected |
|---|---|---|---|
| f/5.6 | 18 | 0 | 18 |
| f/8 | 21 | 3 | 18 |
| f/9 | 13 | 0 | 13 |
| Total | 52 | 3 | 49 |
Every rejection is a near-ceiling rejection. No usable frame remains at f/5.6 or f/9, so the archive cannot support an aperture trend. The accepted set consists of two f/8, 1/1000 s frames and one f/8, 1/1600 s frame.
This is a limitation of the retained exposure series, not a reason to coerce the brighter frames into measurements. Once clipping has compressed the field, no later normalization can recover the response that was clipped away.
Input and admission conditions
The measurement consumes a signed, black-subtracted Bayer mosaic. For CFA
position p, the headroom denominator is the signal-referred range:
ceiling[p] = white level - black level[p]
near threshold[p] = 0.98 × ceiling[p]
Near-ceiling and finite-coverage fractions are measured over both the whole plane and a centered gate, separately for all four positions. The declared admission policies are:
| Check | Declared condition | Why it exists |
|---|---|---|
| Near ceiling | no more than 1% at or above 98% of signal range | clipping makes falloff look smaller |
| Screening coverage | at least 90% finite in full plane and gate | a low ratio over a mostly missing plane does not describe a usable field |
| Center signal | center median at least 5% of signal range | protects every normalization denominator |
| Negative samples | no more than 1% | catches black/pedestal inconsistency |
| Per-bin coverage | at least 90% finite | rejects incomplete maps |
These are project analysis choices, not camera-industry standards. The measured fractions travel with each verdict in the screening table.
Why whole-frame screening is insufficient
For the f/8, 1/500 s negative case, the worst CFA position measures 0.496401% near ceiling over the whole frame and 11.631902% inside the center gate. The whole-frame number alone passes the 1% condition; the center number rejects it. The gate therefore prevents a locally clipped normalizer from making the response appear artificially flat.
Spatial calculation
Each accepted CFA plane is divided into a 16 × 12 grid. Every cell stores the median black-subtracted signal, and each plane is divided by its own separate center-block median. Red, green-1, green-2, and blue are never pooled before normalization.
The public response table contains 576 rows: 192 spatial cells for each of the three accepted fields. For the primary field:
| Quantity | Minimum | Maximum |
|---|---|---|
| Green relative response | 0.480104 | 1.000534 |
C_RG |
0.977316 | 0.999956 |
C_BG |
0.999718 | 1.044729 |
C_G1G2 |
0.998943 | 1.002342 |
The large intensity falloff and the smaller chromatic shifts are different results. The separate map ranges in the figure keep them from being mistaken for equal-size effects.
Equal-radius corner test
Four blocks of equal size are inset symmetrically from the frame edges. After center normalization, the green statistic is:
G(q) = [R_G1(q) + R_G2(q)] / 2
A = [max_q G(q) - min_q G(q)] / mean_q G(q)
Equal radius is the precondition: a centered scalar field of radius assigns the
same value to all four blocks and drives A to zero. The code rejects odd
mosaic geometry or blocks that cannot preserve this relationship.
| Accepted field | Exposure | A |
Declared policy exceeded? |
|---|---|---|---|
| flat-field-19 | f/8, 1/1000 s | 0.196484 | yes |
| flat-field-20 | f/8, 1/1000 s | 0.199964 | yes |
| flat-field-25 | f/8, 1/1600 s | 0.160875 | yes |
The primary and repeat differ in A by 0.00348, while the third differs from
the primary by 0.03561. This supports the high-asymmetry verdict in all three
frames; it does not establish a population repeatability distribution or
calibrate the 0.05 policy.
Matched pair and dark-control scope
For the two 1/1000 s fields, the maximum absolute change over four corners and four CFA positions is 0.378748 percentage points, with 0.181309 pp RMS. A purely multiplicative exposure change cancels after each frame is normalized to its own center, so the nonzero pair difference remains visible rather than being absorbed into exposure scale.
All three accepted rows record dark_controls_verified = true. Detailed and
response results require that bounded control because an additive pedestal does
not cancel from center-normalized corners. The 52-row screening inventory has a
different job: it records whether a frame reaches the response-analysis gate,
so rejected screening rows intentionally defer the pedestal check instead
of requiring a full dark pairing for a map that will never be computed.
That separation is important. A screening pass is not a response result, while a verified dark control is a supporting check rather than a correction—the dark is not subtracted from the already black-subtracted sphere samples.
What this result does not identify
The minimum green map cell is bottom-left in all three accepted fields, and the top-right is the brightest corner cell. The repeated orientation constrains the observation to the retained capture geometry.
It does not identify a physical cause. The source port was not independently characterized, and no source/camera rotation pair survived. Illumination, alignment, lens shading, mechanical obstruction, sensor angular response, and residual dark behavior cannot be varied one at a time in these records. They are confounded, so the result is reported for the complete capture system.
What would resolve it
The next experiment should acquire unsaturated repeats at several apertures, measure the source field independently, and rotate the camera relative to the source. That would separate source-fixed from camera/lens-fixed structure. A matched lens/body substitution would then be needed to narrow optics versus sensor-side contributions.
Until those controls exist, the defensible conclusion is specific: the retained capture path required a directional spatial map, and a centered radial scalar correction would not describe it.
Source file: reports/flat-field-response.md