1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
//! Opt-in diagnostic channel for inspecting how a detection was produced.
//!
//! The items in this module expose **intermediate evidence** from the
//! detector pipeline — the dense ChESS response map and the Radon
//! heatmap — rather than the detection result itself. They exist for
//! debugging, parameter tuning, and visualization: rendering a response
//! map as an overlay, checking why a corner was or was not seeded, or
//! sweeping a threshold against a heatmap.
//!
//! These are **not** part of the normal detection result contract. The
//! supported way to obtain corners is [`Detector`] plus
//! [`DetectorConfig`](crate::DetectorConfig); a typical consumer never
//! needs this module.
//!
//! # Stability
//!
//! This channel carries a **looser stability promise** than
//! [`Detector`] and [`DetectorConfig`](crate::DetectorConfig).
//! The shape of an intermediate response map or heatmap may change as
//! the detector internals evolve, even when the detection result
//! contract does not. Treat anything reachable here as advisory
//! diagnostic data, not a versioned API guarantee.
/// Storage for a dense detector response map (one score per pixel).
pub use ResponseMap;
/// Compute the dense ChESS response map for an 8-bit grayscale image.
pub use chess_response_u8;
/// Compute the Radon corner heatmap for an 8-bit grayscale buffer.
pub use crateradon_heatmap_u8;
/// Compute the Radon corner heatmap from an `image::GrayImage`.
pub use crateradon_heatmap_image;
use crateChessError;
use crateDetector;
/// Detector-bound accessor for the diagnostic outputs in this module.
///
/// This is the detector-bound half of the diagnostics channel: it
/// exposes the same intermediate response maps and heatmaps as the
/// free functions above, but sources its parameters from an existing,
/// already-configured [`Detector`] instead of asking the caller to
/// re-supply a [`DetectorConfig`](crate::DetectorConfig). It is the
/// convenient path when you already hold a configured [`Detector`].
///
/// Obtain one with [`Detector::diagnostics`]. The handle borrows the
/// detector; it neither clones the configuration nor mutates the
/// detector.
///
/// # Stability
///
/// Like the free functions in this module, the methods here carry a
/// **looser stability promise** than [`Detector::detect`] and the
/// detection result contract. Treat their output as advisory
/// diagnostic data, not a versioned API guarantee.