La clase
bicotiOperatorUnary se relaciona con una sola implementación de
imagen y puede aplicarle cualquier operador de Pixel en Pixel.
Es decir, esta clase simplemente tiene una referencia
a la imagen, el usuario selecciona un bicotiPixelOperatorUnary
cualquiera, se lo pasa al operador y llama a la función Apply, la
que recorre cada pixel de la imagen usando un iterador, aplicandole el
operador a cada uno de los pixeles de la misma.
Para cada pixel de la imagen :
nuevo_pixel
= operador( pixel_actual )
Por ejemplo si queremos hallar el valor absoluto de una imagen de flotantes:
Creamos el operador , pasándole un puntero a la imagen :
bicotiOperatorUnary<
float > oper ( ptr_ima );
Creo el operador para el pixel
bicotiPixelOperatorUnary<
float > * ptr_pix_oper ;
ptr_pix_oper
= new bicotiPixelOperatorUnaryAbsoluteValue< float >;
Ahora aplico el operador :
oper.Apply( ptr_pix_oper );
Obs
: Puede verse que este algoritmo no depende para nada de la dimensión
de la imagen, pero si
hay que saber el tipo de pixel para instanciar correctamente los templates.
Para más detalles sobre la clase ver :