* 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
num[p]++;
}
}
for (int i=0; i
ip.putPixel(255, i, j);
}
}
for (int i=0; i<256;>
Este es codigo de un histograma desallorado en java, pero al parecer el blogger tiene problemas pcn la funcion for ^^ trata de interpretarla
ReplyDeleteCorrige el código por favor. No hace sentido.
ReplyDeleteMi 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.
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
ReplyDeleteEl 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
ReplyDeleteCon la ayuda de un arreglo y un for almacenamos el valor del pixel y obtenemos el histograma de la imagen que deseamos tratar.
ReplyDelete