Práctica 3. TDA Imagen
Métodos públicos | Lista de todos los miembros
Referencia de la Clase Image

T.D.A. Imagen. Más...

#include <image.h>

Métodos públicos

 Image ()
 Constructor por defecto . Más...
 
 Image (int nrows, int ncols, byte value=0)
 Constructor con parámetros. Más...
 
 Image (const Image &orig)
 Constructor de copias. Más...
 
 ~Image ()
 Oper ador de tipo destructor. Más...
 
Imageoperator= (const Image &orig)
 Operador de asignación . Más...
 
bool Empty () const
 Funcion para conocer si una imagen está vacía. Más...
 
int get_rows () const
 Filas de la imagen . Más...
 
int get_cols () const
 Columnas de la imagen. Más...
 
int size () const
 Devuelve el número de píxeles de la imagen. Más...
 
void set_pixel (int i, int j, byte value)
 Asigna el valor valor al píxel (i, j) de la imagen. Más...
 
byte get_pixel (int i, int j) const
 Consulta el valor del píxel (fil, col) de la imagen. Más...
 
byte get_pixel (int k) const
 Consulta el valor del píxel k de la imagen desenrrollada. Más...
 
void set_pixel (int k, byte value)
 Asigna el valor valor al píxel k de la imagen desenrollada. Más...
 
bool Save (const char *file_path) const
 Almacena imágenes en disco. La diferencia con Image::MySave() es que usa la representación secuencial en memoria, por lo que no funciona con la representación modificada. Más...
 
bool MySave (const char *file_path) const
 Almacena imágenes en disco. La diferencia con Image::Save() es que no usa la representación secuencial en memoria, por lo que funciona con la representación modificada. Más...
 
bool Load (const char *file_path)
 Carga en memoria una imagen de disco . Más...
 
void Invert ()
 Calcula el negativo de la imagen llamadora. Más...
 
void AdjustContrast (byte in1, byte in2, byte out1, byte out2)
 Modifica el contraste de una Imagen mediante un ajuste lineal. Más...
 
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. Más...
 
Image Subsample (int factor) const
 Genera un icono como reducción de una imagen. Más...
 
Image Crop (int nrow, int ncol, int height, int width) const
 Hace un recorte de una imagen. Más...
 
Image Zoom2X () const
 Genera una imagen aumentada 2x. Más...
 
void ShuffleRows_noeff ()
 Método que baraja pseudoaleatoriamente las filas de una imagen. Código de eficiencia de orden rows*cols. Más...
 
void ShuffleRows_eff ()
 Método que baraja pseudoaleatoriamente las filas de una imagen. Código de eficiencia de orden rows. Más eficiente, pero a costa de variar la representación de nuestro tipo. Más...
 
bool operator== (const Image &other) const
 Operador ==, para comparar dos imágenes. Más...
 

Descripción detallada

T.D.A. Imagen.

Una instancia del tipo de dato abstracto Imagen nos permite almacenar imágenes de intensidades.

El TDA Imagen proporciona además distintas herramientas para la manipulación de dichas imágenes.

Para poder usar el TDA Imagen se debe incluir el fichero

#include <Imagen.h>

Documentación del constructor y destructor

◆ Image() [1/3]

Image::Image ( )

Constructor por defecto .

Postcondición
Genera una instancia de la clase Imagen con O filas y O columnas.
Devuelve
Imagen, el objeto imagen creado.

◆ Image() [2/3]

Image::Image ( int  nrows,
int  ncols,
byte  value = 0 
)

Constructor con parámetros.

Parámetros
nrowsNúmero de filas de la imagen.
ncolsNúmero de columnas de la imagen.
valuedefecto Valor con el que inicializar los píxeles de la imagen . Por defecto O.
Precondición
nrows > O y ncols > O
Postcondición
La imagen creada es de nrows y ncols columnas. Estará inicializada al valor por defecto.
Devuelve
Imagen, el objeto imagen creado.

◆ Image() [3/3]

Image::Image ( const Image orig)

Constructor de copias.

Parámetros
origReferencia a la imagen original que se quiere copiar.
Devuelve
Imagen, el objeto imagen creado.

◆ ~Image()

Image::~Image ( )

Oper ador de tipo destructor.

Devuelve
void
Postcondición
El objeto Imagen destruido no puede usarse salvo que se haga sobre él una operacion Imagen().

Documentación de las funciones miembro

◆ AdjustContrast()

void Image::AdjustContrast ( byte  in1,
byte  in2,
byte  out1,
byte  out2 
)

Modifica el contraste de una Imagen mediante un ajuste lineal.

Los nuevos valores de los píxeles estarán en el rango:

  • [0,out1] si sus valores iniciales están en [0,in1],
  • [out1, out2] si sus valores iniciales están en [in1,in2], y
  • [out2,255] si sus valores iniciales están en [in2,255].
Explicación del método Image::AdjustContrast
Parámetros
in1Extremo superior del primer rango de la imagen de entrada ( \(e_1\) en la imagen).
in2Extremo superior del segundo rango de la imagen de entrada ( \(e_2\) en la imagen).
out1Extremo superior del primer rango de la imagen de salida ( \(s_1\) en la imagen).
out2Extremo superior del segundo rango de la imagen de salida ( \(s_2\) en la imagen).
Precondición
0 <= in1, in2, out1, out2 <= 255
in1 < in2
out1 < out2
Postcondición
El objeto que llama a la función es modificado.

◆ Crop()

Image Image::Crop ( int  nrow,
int  ncol,
int  height,
int  width 
) const

Hace un recorte de una imagen.

Parámetros
nrowFila inicial para recortar
ncolColumna inicial para recortar
heightNúmero de filas del recorte
widthNúmero de columnas del recorte
Devuelve
La imagen recortada
Precondición
0 <= nrow, ncol, height, width
0 <= nrow + height <= rows
0 <= ncols + width <= cols
Postcondición
la imagen llamadora no se modifica
La imagen devuelta tendrá el tamaño especificado en los parámetros

◆ Empty()

bool Image::Empty ( ) const

Funcion para conocer si una imagen está vacía.

Devuelve
Si la imagene está vacía
Postcondición
la imagen no se modifica.

◆ get_cols()

int Image::get_cols ( ) const

Columnas de la imagen.

Devuelve
El número de columnas de la imagen.
Postcondición
la imagen no se modifica.

◆ get_pixel() [1/2]

byte Image::get_pixel ( int  i,
int  j 
) const

Consulta el valor del píxel (fil, col) de la imagen.

Parámetros
iFila de la imagen en la que se encuentra el píxel a consultar.
jColumna de la imagen en la que se encuentra el píxel a consultar.
Precondición
O <= fil < I.Num_ Filas() II O <= col < I.Num Columnas()
Devuelve
el valor del píxel contenido en (fil,col)
Postcondición
La imagen no se modifica.

◆ get_pixel() [2/2]

byte Image::get_pixel ( int  k) const

Consulta el valor del píxel k de la imagen desenrrollada.

Parámetros
kÍndice del píxel
Precondición
0 <= k < filas*columnas
Devuelve
el valor del píxel contenido en (k/filas,kfilas)
Postcondición
La imagen no se modifica.

◆ get_rows()

int Image::get_rows ( ) const

Filas de la imagen .

Devuelve
El número de filas de la i magen.
Postcondición
la imagen no se modifica.

◆ Invert()

void Image::Invert ( )

Calcula el negativo de la imagen llamadora.

Postcondición
Cada byte de la imagen queda correspondido a su opuesto en la escala de grises

◆ Load()

bool Image::Load ( const char *  file_path)

Carga en memoria una imagen de disco .

Parámetros
file_pathRuta donde se encuentra el archivo desde el que cargar la imagen.
Precondición
file_path debe ser una ruta válida que contenga un fichero . pgm
Devuelve
Devuelve true si la imagen se carga con éxito y false en caso contrario.
Postcondición
La imagen previamente almacenada en el objeto que llama a la función se destruye.

◆ Mean()

double Image::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.

Parámetros
iFila de la esquina superior izquierda desde donde empieza el recorte
jColumna de la esquina superior izquierda desde donde empieza el recorte
heightNúmero de filas que ocupa el recorte.
widthNúmero de columnas que ocupa el recorte.
Devuelve
La media de los píxeles del fragmento buscado.
Precondición
0 < height, width, i, j
0<= i+height <= get_rows()
0<= j+width <= get_cols()

◆ MySave()

bool Image::MySave ( const char *  file_path) const

Almacena imágenes en disco. La diferencia con Image::Save() es que no usa la representación secuencial en memoria, por lo que funciona con la representación modificada.

Parámetros
file_pathRuta donde se almacenará la imagen.
Precondición
file path debe ser una ruta válida donde almacenar el fichero de salida.
Devuelve
Devuelve true si la imagen se almacenó con éxito y false en caso contrario.
Postcondición
La imagen no se modifica.

◆ operator=()

Image & Image::operator= ( const Image orig)

Operador de asignación .

Parámetros
origReferencia a la imagen original que desea copiarse.
Devuelve
Una referencia al objeto imagen modificado.
Postcondición
Destroy cualquier información que contuviera previamente la imagen que llama al operador de asignación.

◆ operator==()

bool Image::operator== ( const Image other) const

Operador ==, para comparar dos imágenes.

Parámetros
otherImagen con la que comparar
Valores devueltos
truesi ambas imágenes son iguales pixel a pixel
falsesi, al menos, hay un pixel distinto o tienen dimensiones distintas.

◆ Save()

bool Image::Save ( const char *  file_path) const

Almacena imágenes en disco. La diferencia con Image::MySave() es que usa la representación secuencial en memoria, por lo que no funciona con la representación modificada.

Parámetros
file_pathRuta donde se almacenará la imagen.
Precondición
file path debe ser una ruta válida donde almacenar el fichero de salida.
Devuelve
Devuelve true si la imagen se almacenó con éxito y false en caso contrario.
Postcondición
La imagen no se modifica.

◆ set_pixel() [1/2]

void Image::set_pixel ( int  i,
int  j,
byte  value 
)

Asigna el valor valor al píxel (i, j) de la imagen.

Parámetros
iFila de la imagen en la que se encuentra el píxel a escribir .
jColumna de la imagen en la que se encuentra el píxel a escribir.
valueValor que se escribirá en el píxel (i, j) .
Precondición
O <= i < get_rows()
O <= j < get_cols()
O <= value <= 255
Postcondición
El píxel (i, j) de la imagen se modificará y contendrá valor value. Los demás píxeles permanecerán iguales.

◆ set_pixel() [2/2]

void Image::set_pixel ( int  k,
byte  value 
)

Asigna el valor valor al píxel k de la imagen desenrollada.

Parámetros
kÍndice del píxel a escribir .
valueValor que se escribirá en el píxel k.
Precondición
0 <= k < filas*columnas && O <= valor <= 255
Postcondición
El píxel k se modificará con el valor de value.

◆ ShuffleRows_eff()

void Image::ShuffleRows_eff ( )

Método que baraja pseudoaleatoriamente las filas de una imagen. Código de eficiencia de orden rows. Más eficiente, pero a costa de variar la representación de nuestro tipo.

Precondición
get_rows() < 9973
Postcondición
El objeto implícito contiene la misma imagen pero con las filas cambiadas según el siguiente algoritmo: r' = r*p mod(get_rows())

donde r' es el nuevo índice de la fila r y p es un coprimo de rows. En este algoritmo usamos p=9973, pero se podría modificar.

◆ ShuffleRows_noeff()

void Image::ShuffleRows_noeff ( )

Método que baraja pseudoaleatoriamente las filas de una imagen. Código de eficiencia de orden rows*cols.

Precondición
get_rows() < 9973
Postcondición
El objeto implícito contiene la misma imagen pero con las filas cambiadas según el siguiente algoritmo: r' = r*p mod( get_rows() )

donde r' es el nuevo índice de la fila r y p es un coprimo de rows. En este algoritmo usamos p=9973, pero se podría modificar.

◆ size()

int Image::size ( ) const

Devuelve el número de píxeles de la imagen.

Devuelve
número de píxeles de la imagen.
Postcondición
la imagen no se modifica.

◆ Subsample()

Image Image::Subsample ( int  factor) const

Genera un icono como reducción de una imagen.

Parámetros
factorFactor de reducción de la imagen original respecto al icono
Devuelve
La imagen iconizada
Precondición
factor > 0
Postcondición
la imagen no se modifica
La imagen resultante tendrá tamaño int(filas/factor) X int(columnas/factor), descartando los decimales de la división.

◆ Zoom2X()

Image Image::Zoom2X ( ) const

Genera una imagen aumentada 2x.

Devuelve
La imagen generada aumentada 2x.

La documentación para esta clase fue generada a partir de los siguientes ficheros: