Skip to main content

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}