直方圖等化 equalizeHist

2021-07-28 02:03:08 字數 682 閱讀 3302

我們可透過拉伸直方圖,使直方圖覆蓋所有強度範圍,這種方法的確能提高影像對比度,但是在多數情況,影像模糊不是因為過窄的強度範圍,而是某區間的畫素強度比例過高,這時可以製作乙個對映表,使得調整之後的影像,能平均使用所有的強度,進而增加影像的整體對比度。

這就是直方圖等化的概念,以乙個8位元強度範圍0~255的影像來說,意味著調整之後的影像,50%的畫素強度低於128,25%的畫素強度低於64,其他強度比例依此類推。

opencv直方圖等化

void equalizehist(inputarray src, outputarray dst)

equalizehist()函式可得到直方圖等化後的影像,以下為流程,opencv已將流程封裝好,使用時只要直接呼叫equalizehist()函式即可:

計算輸入圖的直方圖。

將直方圖歸一到所有bin的總合為255。

計算直方圖累計表。

用直方圖累計表完成各強度的對映,所以假設強度30所累積的比例為20%,對映的強度即為255*0.2,由於我們直方圖歸一化到255,所以假設強度30所累積的值為20,對映的強度即為20。

以下程式碼使用直方圖等化,讓影像對比度增加:

#include #include using namespace cv;

int main()

**:

直方圖規定化

直方圖等化可以獲得具有均勻直方圖的輸出影像,主要用於增強影像對比度,操作簡單且結果可預知。但有時候使用者希望能控制轉換的方式,或者能夠指定直方圖的輸出影像,這樣就能選擇性的增強某個灰度範圍內的對比度,或者讓影像灰度滿足某種特定的分布,這種產生特定直方圖影像的方法就叫直方圖規定化。直方圖規定化為產生特...

重寫equal方法

1.equals 方法和hashcode 方法兩者關係 hashcode方法設計原則 1 如果兩個物件相同 即用equals比較返回true 那麼它們的hashcode值一定要相同 2 如果兩個物件不同 即用equals比較返回false 那麼它們的hashcode值可能相同也可能不同 3 如果兩個...

java中 和 equal區別

明確概念 物件的引用 當用類建立乙個物件時,類中的成員變數被分配記憶體空間,這些記憶體空間稱為該物件的實體,而物件中存放著引用 位址 以確保該實體由該物件操作使用。一 比較物件為基本資料型別 byte,short,char,int,long,float,double,boolean 比較兩個基本資料...