Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
IVT
src
Features
PatchFeatures
PatchFeatureEntry.cpp
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: PatchFeatureEntry.cpp
37
// Author: Pedram Azad
38
// Date: 24.09.2008
39
// ****************************************************************************
40
41
42
// ****************************************************************************
43
// Includes
44
// ****************************************************************************
45
46
#include <new>
// for explicitly using correct new/delete operators on VC DSPs
47
48
#include "
PatchFeatureEntry.h
"
49
50
#include "
Image/ByteImage.h
"
51
52
53
54
bool
CPatchFeatureEntry::ExtractFeature
(
const
CByteImage
*pImage,
int
nWindowSize,
float
x
,
float
y
)
55
{
56
const
int
width
= pImage->
width
;
57
const
int
height
= pImage->
height
;
58
59
if
(
x < nWindowSize / 2 || x >
= width - nWindowSize / 2 ||
y < nWindowSize / 2 || y >
= height - nWindowSize / 2)
60
return
false
;
61
62
// construct new feature entry
63
Math2d::SetVec
(
point
, x, y);
64
m_nSize
= nWindowSize * nWindowSize;
65
if
(
m_pFeature
)
delete
[]
m_pFeature
;
66
m_pFeature
=
new
float
[
m_nSize
];
67
68
// extract the feature
69
const
int
diff = width - nWindowSize;
70
const
int
offset
= (int(y) - nWindowSize / 2) * width + (
int
(x) - nWindowSize / 2);
71
const
unsigned
char
*
input
= pImage->
pixels
;
72
73
// determine normalized patch in left image
74
for
(
int
i = 0, offset2 = offset, offset3 = 0; i < nWindowSize; i++, offset2 += diff)
75
for
(
int
j = 0; j < nWindowSize; j++, offset2++, offset3++)
76
{
77
m_pFeature
[offset3] = input[offset2];
78
}
79
80
return
true
;
81
}
CByteImage::width
int width
The width of the image in pixels.
Definition:
ByteImage.h:257
CByteImage
Data structure for the representation of 8-bit grayscale images and 24-bit RGB (or HSV) color images ...
Definition:
ByteImage.h:80
offset
GLintptr offset
Definition:
glext.h:3389
CByteImage::pixels
unsigned char * pixels
The pointer to the the pixels.
Definition:
ByteImage.h:283
x
GLenum GLint x
Definition:
glext.h:3125
CPatchFeatureEntry::ExtractFeature
bool ExtractFeature(const CByteImage *pImage, int nWindowSize, float x, float y)
Definition:
PatchFeatureEntry.cpp:54
PatchFeatureEntry.h
CByteImage::height
int height
The height of the image in pixels.
Definition:
ByteImage.h:264
width
GLenum GLsizei width
Definition:
glext.h:3122
height
GLenum GLsizei GLsizei height
Definition:
glext.h:3132
CFeatureEntry::point
Vec2d point
Definition:
FeatureEntry.h:265
CFeatureEntry::m_pFeature
float * m_pFeature
Definition:
FeatureEntry.h:264
input
GLenum GLenum GLenum input
Definition:
glext.h:5307
y
GLenum GLint GLint y
Definition:
glext.h:3125
ByteImage.h
Math2d::SetVec
void SetVec(Vec2d &vec, float x, float y)
Definition:
Math2d.cpp:68
CFeatureEntry::m_nSize
int m_nSize
Definition:
FeatureEntry.h:261
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