sift/keypoints.rs
1#[derive(Debug, Clone, PartialEq)]
2pub struct KeyPoint {
3 pub x: f32, // x-координата (в масштабе исходного изображения)
4 pub y: f32, // y-координата (в масштабе исходного изображения)
5 pub size: f32, // Характерный размер (связан с sigma в момент обнаружения)
6 pub angle: f32, // Ориентация в радианах (-PI до PI)
7 pub response: f32, // Отклик точки (значение DoG в экстремуме)
8 pub octave: i32, // Индекс октавы, в которой точка была обнаружена
9 pub layer: i32, // Индекс слоя (масштаба) внутри октавы
10}
11
12impl KeyPoint {
13 // Конструктор для удобства, если понадобится
14 #[allow(clippy::too_many_arguments)]
15 pub fn new(
16 x: f32,
17 y: f32,
18 size: f32,
19 angle: f32,
20 response: f32,
21 octave: i32,
22 layer: i32,
23 ) -> Self {
24 KeyPoint {
25 x,
26 y,
27 size,
28 angle,
29 response,
30 octave,
31 layer,
32 }
33 }
34}