Maison  >  Article  >  Java  >  histogramme en niveaux de gris d'image Java

histogramme en niveaux de gris d'image Java

黄舟
黄舟original
2016-12-30 11:56:012279parcourir

Dans l'article précédent, nous avons déjà parlé de l'échelle de gris de l'image. Après l'échelle de gris, nous espérons comprendre la répartition des pixels entre 0-255. Il s'agit de l'histogramme en niveaux de gris de l'image dont nous allons parler ci-dessous, qui est le plus simple. Mais les principes sont les mêmes. L'histogramme d'une image a de nombreuses utilisations. Il reflète certaines caractéristiques de l'image et peut être utilisé pour la recherche d'images.

Le code pour obtenir les informations de l'histogramme est le suivant :

public int[] hist(){  
        toGray();  
        int[] hist = new int[256];  
        int len = h*w;  
          
        for(int i=0;i<len;i++)  
            hist[data[i]]++;  
        return hist;  
    }

Ensuite, ce que nous devons faire est de dessiner l'histogramme statistique de l'image, le code est le suivant :

public BufferedImage getHist(){
	toGray();
	int[] intensity = hist();
	int size = 300;
	BufferedImage pic = new BufferedImage(size,size, BufferedImage.TYPE_4BYTE_ABGR);
	Graphics2D g2d = pic.createGraphics();  
        g2d.setPaint(Color.BLACK);  
        g2d.fillRect(0, 0, size, size);  
        g2d.setPaint(Color.WHITE);  
        g2d.drawLine(5, 250, 265, 250);  	
        g2d.drawLine(5, 250, 5, 5); 	 	
           
        g2d.setPaint(Color.GREEN);  
        int max = math.findMaxValue(intensity);  //找到直方图中最大的值
        float rate = 200.0f/((float)max);  
        int offset = 2;  
        for(int i=0; i<intensity.length; i++) {  
            int frequency = (int)(intensity[i] * rate);  
            g2d.drawLine(5 + offset + i, 250, 5 + offset + i, 250-frequency);  
        }  
           
        g2d.setPaint(Color.RED);  
        g2d.drawString("", 100, 270); 
        return pic;
}

Le code ci-dessus En ce qui concerne l'analyse de l'histogramme de l'analyse d'image

, les résultats d'exécution sont les suivants :

histogramme en niveaux de gris dimage Java

histogramme en niveaux de gris dimage Java


Ce qui précède est le contenu de l'histogramme en niveaux de gris de l'image Java. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn