feat: correct uneven lighting and pick polarity automatically
Fit the background brightness from the photo border and subtract it, so side-lit photos threshold cleanly. The clicked pixel (or, without a click, the border) decides whether the piece is darker or lighter, replacing the invert checkbox. Adds the MDF-on-wood-floor photo as a regression fixture. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
41baa25a01
commit
55a25ba978
10 files changed
+135
-36
No files matched your search
@@ -22,7 +22,6 @@ export class AppState {
|
||||
scalePoints = $state<Point[]>([]);
|
||||
lengthMm = $state<number | null>(null);
|
||||
threshold = $state(DEFAULT_THRESHOLD);
|
||||
invert = $state(false);
|
||||
seed = $state<Point | null>(null);
|
||||
marginMm = $state(-2);
|
||||
mode = $state<'auto' | 'manual'>('auto');
|
||||
@@ -45,7 +44,7 @@ export class AppState {
|
||||
return shapeFromPolygons(cv, image.width, image.height, { outer: this.manualOuter, holes: this.manualHoles }, this.marginPx);
|
||||
}
|
||||
return detect(cv, image, {
|
||||
threshold: this.threshold, invert: this.invert, seed: this.seed, marginPx: this.marginPx,
|
||||
threshold: this.threshold, seed: this.seed, marginPx: this.marginPx,
|
||||
minHolePx: this.pxPerMm ? MIN_HOLE_MM * this.pxPerMm : 0,
|
||||
});
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user