Measure the source, not the survivors
If a tool discards a fifth of its input, profiling what came through tells you about the tool, not the input.
The cave art is cut from one terrain block in a level sheet. The original cut used a luminance threshold — keep pixels brighter than 40, drop the rest — to lift a silhouette out of a sheet that has no transparency in it.
Then I profiled the block to see what I had to work with, and got: runs 49–51, with a rare 61. Flat-shaded art. No modelling to speak of. So I synthesised the shading instead, computing a fade from each pixel’s distance to the nearest hole.
The block’s actual palette, over the same rows:
9 15 19 22 39 49 50 51 61
└──── discarded ────┘└─── kept ───┘
Nine values. The threshold ran through the middle of them and took a fifth of the block with it, including 445 pixels at luminance 39 — the mid-shadow where the rock turns down into its crevices, which is precisely the texture I had just concluded was absent.
I had profiled the block after the step that destroyed what I was looking for. The measurement was true of what survived the cut and false of the source.
The general form: when a pipeline filters its input, any measurement taken downstream of the filter describes the filter. It will look like a fact about the data, and it will be confidently wrong in exactly the direction that justifies whatever the filter is already doing.