積分圖像(Integral Image)與積分直方圖 (Integral Histogram)

轉載自:http://blog.sina.com.cn/s/blog_5562b0440102wgxs.html

在圖像處理中有兩個常用的相關算法,這就是積分圖像(Integral Image)和積分直方圖(Integral Histogram),本文來講解這兩個算法的基本原理。

  在本文中主要以灰度圖像來講解。一個圖像內矩形區域的積分是指這個矩形區域內所有灰度值的和,如圖所示:
積分圖像(Integral <wbr>Image)與積分直方圖 <wbr>(Integral <wbr>Histogram)

所選定區域的積分爲:
積分圖像(Integral <wbr>Image)與積分直方圖 <wbr>(Integral <wbr>Histogram)
如圖以3x6圖像爲例,左側是原始圖像,右側是其積分圖像,其中(2,4)位置的積分爲16:
積分圖像(Integral <wbr>Image)與積分直方圖 <wbr>(Integral <wbr>Histogram)

如果每個像素點都公式計算其積分,其運算量就太大了,爲了減少計算量,專家經過推導給出瞭如下計算方法:如圖所示:
積分圖像(Integral <wbr>Image)與積分直方圖 <wbr>(Integral <wbr>Histogram)

區域1 : = sum(A);
區域2 : = sum(A + B);
區域3 : = sum(A + C);
區域4 : = sum(A + B + C + D);
所以,如果需要計算D區域中的灰度和,則
sum(D) = 區域4 - 區域2 - 區域3 + 區域1 (都是灰度值)。
很明顯,這裏僅僅只需要通過查表得到 1、2、3、4點的積分圖像的值即可得到。由此計算任意點積分方法可以化爲:
積分圖像(Integral <wbr>Image)與積分直方圖 <wbr>(Integral <wbr>Histogram)
其中integral(i,j)表示(i,j)點積分值,而image(i,j)表示的是該點圖像灰度值,由此可以知道計算一個圖像積分的運算量與這個圖像的大小差不多。
  下面再說,積分直方圖(Integral Histogram)。一個圖像內矩形區域的積分積分直方圖是指這個矩形區域內所有灰度值的頻數。普通的灰度直方圖是指一個圖像各灰度級出現的頻數,如圖所示:
積分圖像(Integral <wbr>Image)與積分直方圖 <wbr>(Integral <wbr>Histogram)

而積分直方圖如圖所示:
積分圖像(Integral <wbr>Image)與積分直方圖 <wbr>(Integral <wbr>Histogram)
本圖是一個灰度級爲[0,9]的圖像,H(4,5)表示的是(0,0)到(4,5)所有像素所有灰度級出現的頻數,即後面的數字[2 1 4 3 2 2 2 1 2 1]表示灰度級[0 1 2 3 4 5 6 7 8 9]在區域裏出現的頻數。如同積分圖的計算方法,積分直方圖也可以用類似的方法進行。
積分圖像(Integral <wbr>Image)與積分直方圖 <wbr>(Integral <wbr>Histogram)
公式如下:
積分圖像(Integral <wbr>Image)與積分直方圖 <wbr>(Integral <wbr>Histogram)
也就是可以如下進行:
積分圖像(Integral <wbr>Image)與積分直方圖 <wbr>(Integral <wbr>Histogram)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章