Part II · Running a measurement
5. The region, and what a hole means
Most of the time a correlation does not need to measure the whole photograph - the specimen fills only part of the frame, and the background around it correlates against itself perfectly well while telling you nothing you want to know. Restricting where points are placed is not just an optimisation; it changes what the result can honestly claim.
Drawn or detected, the region is honest about which
A region of interest can be drawn by hand, corner by corner, or proposed automatically by segmenting the image for wherever the speckle is strong enough to correlate well. The two are not the same kind of claim: a hand-drawn boundary is a person's judgement about where the specimen is, and a detected one is an algorithm's judgement about where the pattern is measurable, which are related but different questions. A result should carry which kind of boundary produced it, because a reader deciding how much to trust the edge of a field needs to know which question was actually asked there.
What a region actually restricts
A region decides where the centres of measurement points are allowed to sit. By itself it does not shrink the subset each point correlates over: a point near the edge of a region still looks at a full subset of pixels around it, some of which lie outside the region. So a boundary is softer than it looks, and points close to it are influenced by whatever sits just beyond it.
That softness is not inevitable, though it is what most tools do. A correlation can instead be run on only the valid pixels of a subset that straddles a boundary, masking out the rest, at the cost of having fewer pixels to work with at exactly the places where the measurement is already hardest. Whether that trade is worth making depends on what lies outside the boundary: more specimen you simply chose not to measure is fairly harmless to include, and a hole showing the background behind the specimen is not. Ask of any tool which of the two it does, because a full subset near a boundary and a masked one produce different numbers there and neither is labelled.
A hole is not decoration
Many real specimens are not solid: a dogbone tension coupon drilled for a pin, a plate with a hole for a fastener, a bracket with slots cut into it. Where the material is genuinely absent, the camera sees whatever is behind the specimen instead - background, or a fixture, or empty space - and that background does not move the way the specimen does. A measurement point placed there correlates the background against itself perfectly well and reports, with complete confidence, that nothing moved.
That is the worst possible place for a false reading to appear. A hole through a loaded part is exactly where stress concentrates, which is exactly where a strain map is most worth looking at closely - and a cold, confident, entirely wrong "no strain here" sitting right at that concentration is precisely the kind of error nobody thinks to double-check, because it looks like an answer rather than like a mistake.
A region that can describe a hole - an outer boundary with a place cut out of it, excluded from measurement - fixes this by simply not placing points there at all. What is drawn is then a positive statement about the specimen's actual shape, not merely a rough outer boundary hoping nobody looks too closely at what is inside it.
A subset can still reach into a hole it does not sit inside
The same softness that applies at the outer boundary applies at a hole's edge too, and for the same reason: a subset extends beyond the single point it is centred on. A point just outside a hole can still have a subset that reaches partway into it, picking up some pixels that are genuinely background and do not move with the specimen. That pulls its answer very slightly toward "did not move," in the same quiet, plausible-looking direction as a point placed fully inside the hole would be, just to a lesser degree.
The honest response is not to pretend this cannot happen by excluding every point anywhere near a hole - that would apply a stricter rule at a hole's edge than the same result already accepts at the outer boundary, for no principled reason. It is to count and report how many measured points have a subset reaching into a hole, so a reader can widen the exclusion or simply read those points knowing what they are.
6. Sequences: order matters, reference matters
A DIC test is almost never one photograph compared against another. It is a loading series: a reference, and a run of targets taken as whatever is being studied happens over time. Two decisions that look like bookkeeping turn out to be about correctness.
Frame order is a correctness problem, not a presentation one
Sort a list of filenames the way a computer sorts text, and
frame_10 comes before frame_2, because
"1" is a smaller character than "2" and the
rest of the comparison never looks at the full number. A twelve-frame
test sorted that way gets measured in the order 1, 10, 11, 12, 2, 3,
and so on - and every individual frame still solves correctly,
because the correlation itself has no idea what order it was asked to
run in.
The result is a field that is internally perfect and, taken as a series, complete nonsense: a specimen that appears to jump backward and forward instead of loading smoothly. Nothing about any one frame reveals the problem, because nothing is wrong with any one frame. The only fix is to sort frames the way a person reads them - as numbers, not as text - before anything is measured, so what is listed as the sequence is guaranteed to be what gets measured as the sequence.
The same trap appears again on the way out. A results file numbered without leading zeros sorts the same wrong way in most viewers, so an exported frame 10 is grouped before frame 2 when a series is played back as an animation. Files need to be numbered so their names sort the same way their content is meant to play.
Every frame against the original reference, by default
The straightforward, and usual, meaning of a DIC sequence is that every target is compared against the same reference frame, not against the frame immediately before it. That keeps every reported displacement directly comparable across the whole test: frame 5's displacement and frame 9's displacement both mean "how far has this point moved from where it started," and can be laid over one another or subtracted from one another meaningfully.
The cost is that correlation quality degrades as the specimen deforms further from how it looked in that original photograph - the later the frame, the less it resembles the reference, and eventually subsets that correlated beautifully at the start start failing. The next chapter is about what to do when that happens.
7. When the reference goes stale
A reference that no longer resembles the current state of the specimen makes correlation fail, not through any flaw in the method, but because the two images genuinely no longer look alike enough to match. Re-anchoring is the standard answer, and it trades one kind of correctness for another in a way worth understanding before switching it on.
What re-anchoring does
Once too little of the field still correlates well against the original reference, later frames are measured against the current frame instead of the original one. Each point's displacement since the original reference is banked - the new increment is added to whatever was already accumulated - so what is reported stays relative to the original reference throughout, even though what was actually measured on any individual frame after the switch was relative to a more recent one.
This recovers correlation on a specimen that has deformed too far to compare directly against its starting photograph. It is not free: it abandons any point that could not be measured on the exact frame the re-anchor happens on, because there is no other way to know where that point went. That trade is explained wherever the setting is switched on, not buried in a default.
The rule that decides when to re-anchor has to count losses, not just successes
The obvious way to decide "has the reference gone stale" is to ask what share of points still correlate well. The obvious way to build that is to count the points that succeeded. That is backwards, and the reason is not obvious until you watch it fail: if only the points that are still solving well get a vote, then a field that has lost half its points to decorrelation but still correlates beautifully on the half that remains never triggers a re-anchor at all - the surviving half looks great and is the only half being asked.
On a real synthetic tension sequence this was not a hypothetical: solved points fell from 97% of the field to 47% across five load steps, and a rule that counted only successes never re-anchored once. A point lost to decorrelation is the strongest evidence available that the reference has gone stale, and it has to count against the reference exactly because it dropped out, not despite it.
There is one case where that rule has to bend the other way: a frame where nothing correlated must never trigger a re-anchor, because re-anchoring works by banking the increment just measured, and a frame with no increment to bank marks every point lost and ends the sequence's usefulness outright. A reference that is merely stale can recover on a later frame. A field that has lost every tracked point cannot.
The threshold is set by measurement, and moving it changes the outcome directly
A convenient-sounding default (borrowed from other tools' 75% share) turned out to be too permissive when tried against real data: at 75%, a tension sequence sat at 75.3% on its fourth load step - a hair above the line - held the reference one step too long, and arrived at the fifth step with less than half the field still solved. At 90%, the same sequence re-anchors one step earlier, and its final frame keeps far more of the field intact. The number is not a convention; it is a knob that visibly changes how much of a hard test survives to the end.
Two rules the bookkeeping has to get right, always
- A frame is always reported on the original grid, relative to the original reference - whatever it was actually measured against. Otherwise the reported field drifts across the picture as the specimen itself does, and no two frames of the series, and no frame and the original photograph, can ever be laid over one another again.
- A point with no measurement on a re-anchor frame is lost, not frozen. Its position in the new reference is unknown the moment the anchor moves without it, so continuing to report its last known displacement forever would present a region that has genuinely stopped being tracked as though it had simply stopped moving - a measurement claim, sitting where there is none left to make.
8. Points that fail, and the pass that repairs them
Most points a correlation loses are not places where the surface is genuinely unmeasurable. They are places where the search started from a poor guess. A second pass that gives failed points a better starting guess, and re-solves them properly, recovers a substantial share of a field - if it is built so that it can never make anything worse.
Borrowing from the neighbours, then re-solving in full
A subset's correlation search has to start somewhere, and if that starting guess is far from the real answer, the search can fail to converge even though a perfectly good match exists nearby. A recovery pass fits a displacement field to the points around a failed one that did correlate well, uses that fit as a better starting guess at the failed point, and runs the full correlation search again from there.
The result of the fit is never reported as a measurement on its own. It is only ever an initial guess, and the point is only accepted once it has been correlated properly from that guess - with its own, independently earned correlation score. Reporting the fitted value directly, without re-solving, would put an interpolation borrowed from a point's neighbours into the field wearing the same appearance as a real measurement, which is exactly the trap Chapter 2 describes for strain, one step further along the same idea.
The rule that makes this safe to leave switched on: it may never make anything worse
A recovery pass that only ever touches points that already failed can, at worst, do nothing. That is the entire argument for running it by default: an answer is accepted only if it converges and correlates better than whatever was there before - nothing, in the case of a point that had failed outright - so the pass can only add points to a field, never spoil ones that were already there.
Recovery spreads in rounds: points recovered in one round become trustworthy neighbours for the next, so repair can work its way into the middle of a large failed patch that had no good neighbour at all on the very first attempt.
A recovered point is marked, everywhere it is reported
A recovered point is a genuine measurement - it converged, and it carries its own correlation score - and needs no apology on that account. But it reached its answer by a different route than the rest of the field, and that is exactly the kind of thing this manual has already argued should never be hidden: the mark travels with the point everywhere it is reported, so a reader can always ask where the repairs are concentrated. That question has a real answer worth asking - repairs clustered along one edge of a specimen usually mean something about the specimen; repairs scattered evenly usually mean something about the correlation settings.
What it actually buys, measured
On real specimens the effect is large. A hard frame of a real tension test with two holes through the gauge section went from 5401 points measured to 8455 once the pass was switched on. On a run that already measured most of its field, the same pass costs a modest amount of extra time and changes almost nothing - the effort scales to how much of the field was actually broken.
| pair | before | after |
|---|---|---|
| synthetic large strain, first to last frame | 167 | 8099 |
| synthetic rotation, first to a later frame | 2574 | 10170 |
| real tension coupon without holes | 5401 | 8455 |
| real tension coupon with holes | 6513 | 9044 |