nmpp
iPlessy.h
1#ifndef __PLESSY_H
2#define __PLESSY_H
3
4#ifdef __cplusplus
5 extern "C" {
6#endif
7
8//class I_PlessyCornerDetector предназначен для поиска характерных точек на изображении по методу Plessy.
9//На выходе выдаются коордитаты характерных точек с субпиксельной точностью.
11{
12public:
13 //Распределяет память для полей класса.
14 //w, h, ww - ширина, высота и step картинки соответственно.
15 virtual void Allocate(int w, int h, int ww) = 0;
16
17 //Освобождает память, выделенную под поля класса.
18 virtual void DeAllocate() = 0;
19
20 //Собственно ищет углы.
21 //w, h, ww - as above.
22 //Picture - обрабатываемая картинка.
23 //*px, *py - массивы x и y координат углов (размер массивов определяется снаружи, максимальное
24 // значение - (w/2)*(h/2).
25 //nc - количество найденных углов.
26 virtual void FindCorners(unsigned char *Picture, int w, int h, int ww, float *px, float *py, int& nc) = 0;
27
28 //Освобождает интерфейс объекта
29 virtual void Release() = 0;
30
31 //Устанавливает threshold, по которому порожится Plessy-массив. Для 16s обычно ставится 32.0f.
32 //Для 32f обычно ставится 1/1024.
33 //Чем меньше порог, тем выше "качество" угла
34 virtual void SetThreshold(float _threshold)=0;
35};
36
37//Тип реализации (float и short соответственно)
38enum PCD_TYPE {PCD_32f, PCD_16s};
39
40//Создает объект и возвращает интерфейс I_PlessyCornerDetector
41I_PlessyCornerDetector* CreatePlessyCornerDetector(PCD_TYPE type);
42
43#ifdef __cplusplus
44 };
45#endif
46#endif
Definition: iPlessy.h:11