Práctica 3. TDA Imagen
image.h
Ir a la documentación de este archivo.
1 
8 #ifndef _IMAGEN_H_
9 #define _IMAGEN_H_
10 
11 
12 #include <cstdlib>
13 #include "imageIO.h"
14 
15 
22 typedef unsigned char byte;
23 
24 
36 enum LoadResult: unsigned char {
37  SUCCESS,
38  NOT_PGM,
39  READING_ERROR
40 };
41 
42 
56 class Image{
57 
93 private :
94 
101  byte **img;
102 
106  int rows;
107 
108 
112  int cols;
113 
117  byte * orgn_ptr;
118 
127  void Initialize (int nrows= 0, int ncols= 0, byte *buffer= 0);
128 
136  LoadResult LoadFromPGM(const char * file_path);
137 
144  void Copy(const Image &orig);
145 
154  void Allocate(int nrows, int ncols, byte * buffer = 0);
155 
162  void Destroy();
163 
164 public :
165 
171  Image();
172 
182  Image(int nrows, int ncols, byte value=0);
183 
189  Image (const Image & orig);
190 
196  ~Image() ;
197 
204  Image & operator= (const Image & orig);
205 
211  bool Empty() const;
212 
218  int get_rows() const;
219 
225  int get_cols() const;
226 
232  int size() const;
233 
245 void set_pixel (int i, int j, byte value);
246 
255  byte get_pixel (int i, int j) const;
256 
264  byte get_pixel (int k) const;
265 
273  void set_pixel (int k, byte value);
274 
284  bool Save (const char * file_path) const;
285 
295  bool MySave (const char *file_path) const;
296 
304  bool Load (const char * file_path);
305 
310  void Invert();
311 
334  void AdjustContrast (byte in1, byte in2, byte out1, byte out2);
335 
336 
348  double Mean (int i, int j, int height, int width) const;
349 
359  Image Subsample(int factor) const;
360 
374  Image Crop(int nrow, int ncol, int height, int width) const;
375 
380  Image Zoom2X() const;
381 
382 
383 
395  void ShuffleRows_noeff();
396 
409  void ShuffleRows_eff();
410 
411 
418  bool operator==(const Image & other) const;
419 } ;
420 
421 
422 #endif // _IMAGEN_H_
423 
T.D.A. Imagen.
Definition: image.h:56
~Image()
Oper ador de tipo destructor.
Definition: image.cpp:112
bool Empty() const
Funcion para conocer si una imagen está vacía.
Definition: image.cpp:59
double Mean(int i, int j, int height, int width) const
Calcula la media de los píxeles de una imagen entera o de un fragmento de ésta.
Definition: imageop.cpp:34
int get_rows() const
Filas de la imagen .
Definition: image.cpp:128
void ShuffleRows_noeff()
Método que baraja pseudoaleatoriamente las filas de una imagen. Código de eficiencia de orden rows*co...
Definition: imageop.cpp:148
void AdjustContrast(byte in1, byte in2, byte out1, byte out2)
Modifica el contraste de una Imagen mediante un ajuste lineal.
Definition: imageop.cpp:119
Image()
Constructor por defecto .
Definition: image.cpp:88
bool operator==(const Image &other) const
Operador ==, para comparar dos imágenes.
Definition: imageop.cpp:14
void ShuffleRows_eff()
Método que baraja pseudoaleatoriamente las filas de una imagen. Código de eficiencia de orden rows....
Definition: imageop.cpp:162
void Invert()
Calcula el negativo de la imagen llamadora.
Definition: imageop.cpp:103
void set_pixel(int i, int j, byte value)
Asigna el valor valor al píxel (i, j) de la imagen.
Definition: image.cpp:141
int size() const
Devuelve el número de píxeles de la imagen.
Definition: image.cpp:136
bool Load(const char *file_path)
Carga en memoria una imagen de disco .
Definition: image.cpp:98
Image Subsample(int factor) const
Genera un icono como reducción de una imagen.
Definition: imageop.cpp:88
Image Crop(int nrow, int ncol, int height, int width) const
Hace un recorte de una imagen.
Definition: imageop.cpp:108
bool MySave(const char *file_path) const
Almacena imágenes en disco. La diferencia con Image::Save() es que no usa la representación secuencia...
Definition: imageop.cpp:181
int get_cols() const
Columnas de la imagen.
Definition: image.cpp:132
byte get_pixel(int i, int j) const
Consulta el valor del píxel (fil, col) de la imagen.
Definition: image.cpp:144
bool Save(const char *file_path) const
Almacena imágenes en disco. La diferencia con Image::MySave() es que usa la representación secuencial...
Definition: image.cpp:167
Image & operator=(const Image &orig)
Operador de asignación .
Definition: image.cpp:118
Image Zoom2X() const
Genera una imagen aumentada 2x.
Definition: imageop.cpp:53
Fichero cabecera para la E/S de imágenes.
unsigned char byte
Tipo de dato que representa un byte sin signo.
Definition: image.h:22
LoadResult
Enumeración que representa el resultado de cargar una imagen PGM.
Definition: image.h:36