首頁 > Java > java教程 > java 影像灰階直方圖

java 影像灰階直方圖

黄舟
發布: 2016-12-30 11:56:01
原創
2303 人瀏覽過

上一篇文章中,已經說過了圖像的灰度化,灰度化之後,我們希望了解像素在0-255的分佈情況。這就是我們下面要說的圖像的灰階直方圖,這是最簡單的一種。但是原理都是一樣的。影像的直方圖有大量的用處,它反應了影像的某些特徵,以至於可以用來進行影像搜尋。

獲得直方圖信息代碼如下:

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;  
    }
登入後複製

然後我們要做的就是畫出圖像的統計直方圖,代碼如下:

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;
}
登入後複製

以上代碼參考了 圖像分析之直方圖分析

運行結果如下:

java 影像灰階直方圖

java 影像灰階直方圖


 以上就是java 影像灰階直方圖的內容,更多相關內容請關注PHP中文網(m.sbmmt.com)!


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板