IVT
IntImage.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: IntImage.cpp
37 // Author: Pedram Azad
38 // Date: 09.01.2007
39 // ****************************************************************************
40 
41 
42 // ****************************************************************************
43 // Includes
44 // ****************************************************************************
45 
46 #include <new> // for explicitly using correct new/delete operators on VC DSPs
47 
48 #include "IntImage.h"
49 
50 
51 
52 // ****************************************************************************
53 // Constructors / Destructor
54 // ****************************************************************************
55 
57 {
58  width = 0;
59  height = 0;
60  pixels = 0;
61  m_bOwnMemory = false;
62 }
63 
64 CIntImage::CIntImage(int nImageWidth, int nImageHeight, bool bHeaderOnly)
65 {
66  width = nImageWidth;
67  height = nImageHeight;
68 
69  if (bHeaderOnly)
70  {
71  pixels = 0;
72  m_bOwnMemory = false;
73  }
74  else
75  {
76  pixels = new int[width * height];
77  m_bOwnMemory = true;
78  }
79 }
80 
81 CIntImage::CIntImage(const CIntImage &image, bool bHeaderOnly)
82 {
83  width = image.width;
84  height = image.height;
85 
86  if (bHeaderOnly)
87  {
88  pixels = 0;
89  m_bOwnMemory = false;
90  }
91  else
92  {
93  pixels = new int[width * height];
94  m_bOwnMemory = true;
95  }
96 }
97 
98 CIntImage::CIntImage(const CIntImage *pImage, bool bHeaderOnly)
99 {
100  width = pImage->width;
101  height = pImage->height;
102 
103  if (bHeaderOnly)
104  {
105  pixels = 0;
106  m_bOwnMemory = false;
107  }
108  else
109  {
110  pixels = new int[width * height];
111  m_bOwnMemory = true;
112  }
113 }
114 
116 {
117  FreeMemory();
118 }
119 
120 
121 // ****************************************************************************
122 // Methods
123 // ****************************************************************************
124 
125 void CIntImage::FreeMemory()
126 {
127  if (pixels)
128  {
129  if (m_bOwnMemory)
130  delete [] pixels;
131 
132  pixels = 0;
133  m_bOwnMemory = false;
134  }
135 }
int width
Definition: IntImage.h:71
int height
Definition: IntImage.h:72
Data structure for the representation of single channel images of the data type signed int...
Definition: IntImage.h:55
int * pixels
Definition: IntImage.h:73