Show computed camera 3D position after calibration

- Debug image shows only court quadrilateral + camera XYZ coords
- Remove all Hough line debug visualization noise
- Simplify _detect_court_corners — returns corners + error only
- Display camera positions in calibration card (CAM0/CAM1 X Y Z)
- Clean up auto_calibrate flow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Ruslan Bakiev
2026-03-22 14:33:30 +07:00
parent e12edab19b
commit ba70200353
2 changed files with 78 additions and 121 deletions

View File

@@ -331,13 +331,18 @@
<div class="bottom-bar">
<div class="bottom-card"><img id="cal-cam1" alt="Camera 1"></div>
<div class="bottom-card"><img id="cal-cam0" alt="Camera 0"></div>
<div class="cam-card">
<div class="cam-card" style="width:auto;min-width:160px">
<div class="cc-title">Calibration</div>
<button class="btn-calibrate" id="btnCalibrate" onclick="doCalibrate()">Calibrate</button>
<div class="calibrate-status" id="calStatus">
<span id="calStatusText">Not calibrated</span>
</div>
<div id="calError" style="color:#ff4444;font-size:8px;word-break:break-all;display:none"></div>
<div id="calPositions" style="display:none">
<div class="cc-divider"></div>
<div class="cc-item" id="calPos0" style="color:#4ecca3;font-size:8px"></div>
<div class="cc-item" id="calPos1" style="color:#ff88cc;font-size:8px"></div>
</div>
</div>
<div class="bottom-card" id="calDebug0" style="display:none"><img id="calDebugImg0" alt="CAM 0 debug"></div>
<div class="bottom-card" id="calDebug1" style="display:none"><img id="calDebugImg1" alt="CAM 1 debug"></div>
@@ -437,6 +442,20 @@ function doCalibrate() {
errEl.style.display = 'none';
updateCalibrationStatus();
// Show computed camera positions
var posEl = document.getElementById('calPositions');
if (posEl && data.result) {
posEl.style.display = 'block';
for (var sid in data.result) {
var r = data.result[sid];
if (r.ok && r.camera_position) {
var p = r.camera_position;
var el = document.getElementById('calPos' + sid);
if (el) el.textContent = 'CAM' + sid + ': X=' + p[0].toFixed(2) + ' Y=' + p[1].toFixed(2) + ' Z=' + p[2].toFixed(2) + 'm';
}
}
}
fetch('/api/calibration/data')
.then(function(r) { return r.json(); })
.then(function(camData) { addCamerasToScene(camData); });