維基百科上給出的定義是:
在統計學中,直方圖(Histogram)是一種對數據分布情況的圖形表示, 是一種二維, 它的兩個坐標分別是統計樣本和該樣本對應的某個屬性的度量, 以長條圖(bar)的形式具體表現. 因為直方圖的長度及寬度很適合用來表現數量上的變化, 所以較容易解讀差異小的數值.
百度上給出的定義是:
直方圖又稱質量分布圖, 是一種統計報告圖, 由一系列高度不等的縱向條紋或線段表示數據分布的情況. 一般用橫軸表示數據類型, 縱軸表示分布情況. 直方圖是數值數據分布的精確圖形表示, 這是一個連續變量(定量變量)的概率分布的估計, 並且被卡爾·皮爾遜(Karl Pearson)首先引入. 它是一種條形圖. 為了構建直方圖, 第一步是將值的範圍分段, 即將整個值的範圍分成一系列間隔, 然後計算每個間隔中有多少值. 這些值通常被指定為連續的, 不重疊的變量間隔. 間隔必須相鄰, 並且通常是(但不是必須的)相等的大小.
總結一下直方圖特徵為: 二維圖表, 橫軸為數據(具有一定的連續性), 縱軸為數據分布(數據數量).
直方圖作用由於直方圖的特性, 有很多的應用: 如在數據處理方面可以用來排序, 如在圖像處理方面可以用來圖像增強和圖像分割.
直方圖應用之排序排序算法中有一大類使用的是非比較排序, 如下圖所示為計數排序, 從圖中可以看到, 排序過程中使用了直方圖來統計數據, 由於直方圖的橫坐標有一定的連續性, 當數據統計完成, 也就完成排序的目的. 詳細可以參見: 十大經典排序算法(動圖演示) - 一像素 - 博客園 (cnblogs.com)
還有一些擴展應用, 如快速查找數據中的topN, 如用來加速中值濾波(快速查找中間數據)等.
直方圖應用之圖像增強常見的使用直方圖進行增強的方法就是直方圖均衡(HE, Histogram Equalization), 對比度受限自適應直方圖均衡(CLAHE, Contrast Limited Adaptive Histogram Equalization).
均衡的作用就是讓直方圖的分布更加均勻, 直方圖分布越均勻, 其熵越大, 熵越大圖像中包含的信息也就越多, 圖像對比度就越高, 從而實現圖像增強的效果. 如下圖所示為HE的效果:
直方圖應用之圖像分割直方圖是數據分布的直觀表示, 直方圖中的每一個波峰就代表一個目標的分布, 可以通過查看直方圖中的波峰來確定圖像中目標的個數及分布, 因而也可以用來對圖像進行分割, 將直方圖中的波峰進行劃分即可以完成圖像分割. 如下圖所示為圖像及其對應的直方圖, 圖中直方圖有4個波峰(最右邊2個波峰比較靠近, 認為是一個目標), 也可以看到圖像上基本也有4個目標: 人影, 藍天, 白雲, 太陽.
最常見的使用直方圖進行圖像分割的方法是大津閾值法(otsu), 如下所示為otsu實現效果:
otsu方法將直方圖分為2個部分, 如上圖所示紅色線為分割閾值, 對於有多個目標的圖像, 效果不是很好.
對於多目標圖像分割, 可以使用迭代otsu, 進行多次分割, 也可以對直方圖進行高斯擬合(假設目標分布服從高斯分布), 如下所示為高斯擬合進行分割結果: