關於直方圖均衡化(無用)

  最初的想法是,將集中在綠色因子附近的其它顏色因子範圍拉伸,便於利用邏輯表達式,篩選綠色因子。

  拋除RGB沒轉YUV,而是直接進行直方圖均衡化的可笑錯誤外,想法本身就沒什麼大意義,完全是處於最初對直方圖均衡化概念的一知半解!


定義:直方圖均衡化是圖像處理領域中利用圖像直方圖對對比度進行調整的方法。

  這種方法通常用來增加許多圖像的全局對比度,尤其是當圖像的有用數據的對比度相當接近的時候。通過這種方法,亮度可以更好地在直方圖上分佈。這樣就可以用於增強局部的對比度而不影響整體的對比度,直方圖均衡化通過有效地擴展常用的亮度來實現這種功能。
  這種方法對於背景和前景都太亮或者太暗的圖像非常有用,這種方法尤其是可以帶來X光圖像中更好的骨骼結構顯示以及曝光過度或者曝光不足照片中更好的細節。這種方法的一個主要優勢是它是一個相當直觀的技術並且是可逆操作,如果已知均衡化函數,那麼就可以恢復原始的直方圖,並且計算量也不大。這種方法的一個缺點是它對處理的數據不加選擇,它可能會增加背景噪聲的對比度並且降低有用信號的對比度。
  彩色圖像直方圖均衡化實際上,對彩色分量rgb分別做均衡化,會產生奇異的點,圖像不和諧。一般採用的是用yuv空間進行亮度的均衡即可。



OpenCV中的直方圖均衡化

直方圖均衡化就是一種將集中在亮度範圍中間附近的實際亮度值的這個範圍拉伸的方法。

void cvEqualizeHist(//灰度圖象直方圖均衡化
	const CvArr* src,//輸入的8比特、單信道圖像
	CvArr* dst );//輸出的圖像與輸入圖像大小與數據類型相同
對於彩色圖像,必須先將每個通道分開,再分別進行處理

void cvSplit(//分割多通道數組成幾個單通道數組或者從數組中提取一個通道
	const CvArr* src,//原數組
	 CvArr* dst0, CvArr* dst1, CvArr* dst2, CvArr* dst3 );//目標通道
函數 cvSplit 分割多通道數組成分離的單通道數組。
可獲得兩種操作模式:
	1、如果原數組有N通道且前N輸出數組非NULL, 所有的通道都會被從原數組中提取;
	2、如果前N個通道只有一個通道非NULL函數只提取該指定通道,否則會產生一個錯誤,餘下的通道(超過前N個通道的以上的)必須被設置成NULL。
	對於設置了COI的IplImage 結使用cvCopy 也可以從圖像中提取單通道。

彩色圖像直方圖均衡化實際上,對彩色分量rgb分別做均衡化,會產生奇異的點,圖像不和諧。一般採用的是用yuv空間進行亮度的均衡即可。

void cvMerge(//從幾個單通道數組組合成多通道數組或插入一個單通道數組
	const CvArr* src0, const CvArr* src1, const CvArr* src2, const CvArr* src3,//輸入的通道
	CvArr* dst );//輸出數組
函數cvMerge 是前一個函數的反向操作。
	1、如果輸出數組有N個通道並且前N個輸入通道非NULL,就拷貝所有通道到輸出數組;
	2、如果在前N個通道中只有一個單通道非NULL ,只拷貝這個通道到輸出數組,否則就會產生錯誤。除前N通道以外的餘下的通道必須置NULL。
	對於設置了 COI 的 IplImage 結構使用 cvCopy 也可以實現向圖像中插入一個通道 。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章