/**
*
* @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);
}
}
}
}
}
Este codigo permite invertir una imagen, como pueden ver la funcion getpixel, nos da le pixel que deseamos trabajar
ReplyDeleteLa funcion getPixel toma un punto(pixel) determinado, para el ejemplo el bucle hace un barrido pixel por pixel
ReplyDeletelos bucles nos permiten desplazarnos a travez de la imagen pixel por pixel
ReplyDeleteSobreescrimos los pixel al usar put pixel
ReplyDeletegetPixel 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
ReplyDeleteEste código nunca va a funcionar y dará error en cualquier compilar de JAVA.
ReplyDeleteUn 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();
}
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.
ReplyDeleteEl 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".
ReplyDeleteLo actualiza y dibuja.
como pudieron observar asigna el valor a la posicion "col", "row"sin la funcion putPixel
ReplyDeletela 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