Wednesday, April 22, 2009

Inversor

package simu;

/**
*
* @author Administrador
*/
import ij.*;
import ij.process.*;
import ij.gui.*;
import java.awt.*;
import ij.plugin.filter.*;
public class i_filtro {


public class Filter_Plugin implements PlugInFilter {
ImagePlus imp;

public int setup(String arg, ImagePlus imp) {
this.imp = imp;
return DOES_ALL;
}

public void run(ImageProcessor ip) {
//ip.invert();
//imp.updateAndDraw();
//IJ.wait(500);
//ip.invert();
//imp.updateAndDraw();
int w = ip.getWidth();


int h = ip.getHeight();
for (int i=0; i
for (int j=0; j
int p= ip.getPixel(i, j);
ip.putPixel(i, j, 255-p);
}
}
}

}

}

10 comments:

  1. Este codigo permite invertir una imagen, como pueden ver la funcion getpixel, nos da le pixel que deseamos trabajar

    ReplyDelete
  2. La funcion getPixel toma un punto(pixel) determinado, para el ejemplo el bucle hace un barrido pixel por pixel

    ReplyDelete
  3. los bucles nos permiten desplazarnos a travez de la imagen pixel por pixel

    ReplyDelete
  4. Sobreescrimos los pixel al usar put pixel

    ReplyDelete
  5. getPixel permite el tratamiento del punto y para darnos cuenta del manejo del pixel y luego en conjunto ver como quedo la imegen tratada y modificada

    ReplyDelete
  6. Este código nunca va a funcionar y dará error en cualquier compilar de JAVA.

    Un error que pude detectar es el siguiente:

    for (int i=0; i
    for (int j=0; j
    int p= ip.getPixel(i, j);
    ip.putPixel(i, j, 255-p);


    Las sentecias for no están completas. Personalmente lo haría de la siguiente manera:

    public void run(ImageProcessor ip) {
    int w = ip.getWidth();
    int h = ip.getHeight();


    for(int col= 0; col < w; col++)
    for(int row=0; row < h; row++)
    {
    ip.set(col, row, ~ip.get(col,row));
    }
    imp.updateAndDraw();
    }

    ReplyDelete
  7. Con funciones que manejan pixels, como getPixel, putPixel, se puede trabajar en la imagen pixel a pixel, con este código se pudo obtener el negativo de una imagen.

    ReplyDelete
  8. El codigo realizado por ivanstalyn declara las varibles w y h que poseen las dimensionmes la matriz, la sentencia for coloca en columna "col y fila "row" la inversion de "col" y "row".
    Lo actualiza y dibuja.

    ReplyDelete
  9. como pudieron observar asigna el valor a la posicion "col", "row"sin la funcion putPixel

    ReplyDelete
  10. la utilidad de este filtro (negativo) es la mas utilizada para el tratamiento de imagenes, pues es en este ambito donde la mayor parte de modificiones pueden realizarse, lo que se conoce en fotografia como retoque de imagenes.

    ReplyDelete