Wednesday, April 22, 2009

Histograma

/*
* To change this template, choose Tools Templates
* and open the template in the editor.
*/

package simu;

/**
*
* @author Administrador
*/
import ij.*;
import ij.process.*;
import ij.gui.*;
import java.awt.*;
import ij.plugin.filter.*;

public class histograma 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();
int num[]= new int[256] ;


for (int i=0; i<255; i="0;"> for (int j=0; j int p= ip.getPixel(i, j);
num[p]++;
}
}
for (int i=0; i for (int j=0; j
ip.putPixel(255, i, j);
}
}
for (int i=0; i<256;>

5 comments:

  1. Este es codigo de un histograma desallorado en java, pero al parecer el blogger tiene problemas pcn la funcion for ^^ trata de interpretarla

    ReplyDelete
  2. Corrige el código por favor. No hace sentido.

    Mi sugerencia es la siguiente:

    int w = ip.getWidth();
    int h = ip.getHeight();
    int []Histograma = new int[256];
    int valor=0;

    for(int col= 0; col < w; col++)
    for(int row=0; row < h; row++)
    {
    valor = ip.getPixel(col, row);
    Histograma[valor]+=1;
    }

    Donde Histograma[] colecta el conteo de los pixeles del histograma.

    ReplyDelete
  3. Como podemos ver sacamso al informacion de la imagen y creamos un vector de 255 pocisiones donde gracias al for guardamos en la posicion del valor en el vector histogramas

    ReplyDelete
  4. El codigo sugerido por ivanstalyn optimiza a numero de lineas de codigo logrando el objetivo de realizar un histograma, realiza un conteo de los valores del vector y se lo asocia a la posicion VECTOR[X,Y]= el valor numerico y el contenido del VECTOR[X,Y]= a las veces que este se encuentra repetido

    ReplyDelete
  5. Con la ayuda de un arreglo y un for almacenamos el valor del pixel y obtenemos el histograma de la imagen que deseamos tratar.

    ReplyDelete