[go: up one dir, main page]

Menu

[r999]: / libmona / libmona / 2DImage.hh  Maximize  Restore  History

Download this file

140 lines (97 with data), 3.5 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/* -*- mona-c++ -*-
* Copyright (c) Leipzig, Madrid 2004 - 2008
* Max-Planck-Institute for Human Cognitive and Brain Science
* Max-Planck-Institute for Evolutionary Anthropology
* BIT, ETSI Telecomunicacion, UPM
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
/** \file 2DImage.hh
\author Gert Wollny <wollny@cns.mpg.de>
*/
#ifndef __mia_2DImage_hh
#define __mia_2DImage_hh
#include <libmona/2DDatafield.hh>
namespace mona {
template <class T>
class T2DImage: public T2DDatafield<T> {
public:
typedef T Pixel;
typedef typename T2DImage<T>::iterator iterator;
typedef typename T2DImage<T>::const_iterator const_iterator;
T2DImage(const T2DImage& org);
T2DImage(const C2DBounds& _Size);
template <class PixelTransfer> T2DImage(const C2DBounds& _Size, PixelTransfer *Data);
T2DImage<T> *down_scale(const C2DBounds& BlockSize)const;
// Input: Blocksize to be averaged to single pixel
// Returnval: Image of Size Size/Blocksize
template <class Deformation>
T2DImage<T> *
get_deformed(const Deformation& Shift)const;
// Input: A shiftfield
// Returnval:
T get_block_avrg(const C2DBounds& Start, const C2DBounds& BlockSize) const;
T2DImage<T> *get_delta(const T2DImage<T>& Ref) const;
double get_mismatch(const T2DImage<T>& Ref) const;
private:
};
/// double valued image
typedef T2DImage<double> C2DDImage;
/// float valued image
typedef T2DImage<float> C2DFImage;
/// int valued image
typedef T2DImage<int> C2DSIImage;
/// int valued image
typedef T2DImage<unsigned int> C2DUIImage;
/// long valued image
typedef T2DImage<long> C2DSLImage;
/// long valued image
typedef T2DImage<unsigned long> C2DULImage;
/// short valued image
typedef T2DImage<short> C2DSSImage;
/// short valued image
typedef T2DImage<unsigned short> C2DUSImage;
/// unsignded char valued image
typedef T2DImage<uint8> C2DUBImage;
/// signed char valued image
typedef T2DImage<int8> C2DSBImage;
/// bit valued image
typedef T2DImage<bit> C2DBitImage;
}
#endif
/* CVS LOG
$Log$
Revision 1.5 2005/06/29 13:22:20 wollny
switch to version 0.7
Revision 1.1.1.1 2005/03/17 13:44:15 gerddie
initial import
Revision 1.4 2004/08/25 09:08:31 wollny
added an emacs style comment to all source files
Revision 1.3 2004/07/14 07:03:39 wollny
adapt to gcc34
Revision 1.2 2004/06/03 09:57:32 wollny
Changed (hopefully) all instancable class names to Cxxxxx
Revision 1.1 2004/05/04 15:14:55 wollny
make libviewit compile
Revision 1.9 2004/03/18 14:29:29 gerddie
make -Wall silent
Revision 1.8 2003/06/24 23:01:37 gerddie
some commenting
Revision 1.7 2002/07/15 07:15:16 gerddie
make it compile with g++ 3.1
Revision 1.6 2002/06/20 09:59:47 gerddie
added cvs-log entry
*/