Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
IVT
src
Classification
NearestNeighbor.h
Go to the documentation of this file.
1
// ****************************************************************************
2
// This file is part of the Integrating Vision Toolkit (IVT).
3
//
4
// The IVT is maintained by the Karlsruhe Institute of Technology (KIT)
5
// (www.kit.edu) in cooperation with the company Keyetech (www.keyetech.de).
6
//
7
// Copyright (C) 2014 Karlsruhe Institute of Technology (KIT).
8
// All rights reserved.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are met:
12
//
13
// 1. Redistributions of source code must retain the above copyright
14
// notice, this list of conditions and the following disclaimer.
15
//
16
// 2. Redistributions in binary form must reproduce the above copyright
17
// notice, this list of conditions and the following disclaimer in the
18
// documentation and/or other materials provided with the distribution.
19
//
20
// 3. Neither the name of the KIT nor the names of its contributors may be
21
// used to endorse or promote products derived from this software
22
// without specific prior written permission.
23
//
24
// THIS SOFTWARE IS PROVIDED BY THE KIT AND CONTRIBUTORS “AS IS” AND ANY
25
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27
// DISCLAIMED. IN NO EVENT SHALL THE KIT OR CONTRIBUTORS BE LIABLE FOR ANY
28
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
33
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
// ****************************************************************************
35
// ****************************************************************************
36
// Filename: NearestNeighbor.h
37
// Author: Pedram Azad
38
// Date: 06.10.2009
39
// ****************************************************************************
40
44
#ifndef _NEAREST_NEIGHBOR_H_
45
#define _NEAREST_NEIGHBOR_H_
46
47
48
// ****************************************************************************
49
// Necessary includes
50
// ****************************************************************************
51
52
#include "
Interfaces/ClassificatorInterface.h
"
53
54
55
// ****************************************************************************
56
// Forward declarations
57
// ****************************************************************************
58
59
class
CKdTree
;
60
61
62
63
// ****************************************************************************
64
// CNearestNeighbor
65
// ****************************************************************************
66
71
class
CNearestNeighbor
:
public
CClassificatorInterface
72
{
73
public
:
74
enum
ComputationMethod
75
{
76
eBruteForce
,
77
eKdTree
,
78
eBruteForceGPU
79
};
80
81
// constructor
82
CNearestNeighbor
(
ComputationMethod
method);
83
84
// destructor
85
~CNearestNeighbor
();
86
87
88
// public methods
89
void
SetKdTreeMaxLeaves
(
int
nKdTreeMaxLeaves) {
m_nKdTreeMaxLeaves
= nKdTreeMaxLeaves; }
90
bool
Train
(
const
float
*pData,
int
nDimension,
int
nDataSets);
91
int
Classify
(
const
float
*pQuery,
int
nDimension,
float
&fResultError);
92
bool
Classify
(
const
float
*pQueries,
int
nDimension,
int
nQueries,
int
*pResults,
float
*pResultErrors);
93
94
95
private
:
96
// private attributes
97
int
m_nDimension
;
98
int
m_nDataSets
;
99
float
*
m_pData
;
100
CKdTree
*
m_pKdTree
;
101
int
m_nKdTreeMaxLeaves
;
102
bool
m_bTrained
;
103
ComputationMethod
m_method
;
104
};
105
106
107
108
#endif
/* _NEAREST_NEIGHBOR_H_ */
CNearestNeighbor::m_nKdTreeMaxLeaves
int m_nKdTreeMaxLeaves
Definition:
NearestNeighbor.h:101
CNearestNeighbor::CNearestNeighbor
CNearestNeighbor(ComputationMethod method)
Definition:
NearestNeighbor.cpp:63
CKdTree
Definition:
KdTree.h:106
ClassificatorInterface.h
CNearestNeighbor::Classify
int Classify(const float *pQuery, int nDimension, float &fResultError)
Definition:
NearestNeighbor.cpp:154
CNearestNeighbor::ComputationMethod
ComputationMethod
Definition:
NearestNeighbor.h:74
CNearestNeighbor::m_pData
float * m_pData
Definition:
NearestNeighbor.h:99
CNearestNeighbor::m_pKdTree
CKdTree * m_pKdTree
Definition:
NearestNeighbor.h:100
CNearestNeighbor::SetKdTreeMaxLeaves
void SetKdTreeMaxLeaves(int nKdTreeMaxLeaves)
Definition:
NearestNeighbor.h:89
CNearestNeighbor
Class containing different implementations of the nearest neighbor classificator. ...
Definition:
NearestNeighbor.h:71
CNearestNeighbor::m_nDataSets
int m_nDataSets
Definition:
NearestNeighbor.h:98
CNearestNeighbor::eKdTree
Definition:
NearestNeighbor.h:77
CNearestNeighbor::eBruteForce
Definition:
NearestNeighbor.h:76
CClassificatorInterface
Definition:
ClassificatorInterface.h:51
CNearestNeighbor::eBruteForceGPU
Definition:
NearestNeighbor.h:78
CNearestNeighbor::Train
bool Train(const float *pData, int nDimension, int nDataSets)
Definition:
NearestNeighbor.cpp:91
CNearestNeighbor::m_bTrained
bool m_bTrained
Definition:
NearestNeighbor.h:102
CNearestNeighbor::m_nDimension
int m_nDimension
Definition:
NearestNeighbor.h:97
CNearestNeighbor::~CNearestNeighbor
~CNearestNeighbor()
Definition:
NearestNeighbor.cpp:74
CNearestNeighbor::m_method
ComputationMethod m_method
Definition:
NearestNeighbor.h:103
asr_ivt
Author(s): Allgeyer Tobias, Hutmacher Robin, Kleinert Daniel, Meißner Pascal, Scholz Jonas, Stöckle Patrick
autogenerated on Mon Dec 2 2019 03:47:28