0016-在OpenCV環境下進行影象的直方圖均衡化
阿新 • • 發佈:2018-11-16
對於一些過度曝光的影象,實質上是影象的亮度值分佈集中在某一個區域,導致影象的對比度過低。為了解決這個問題,引出了直方圖均衡化這個技術,將亮度值分佈很集中的直方圖的亮度範圍拉大至整一個亮度區域(如8位灰度圖就是到0-255)。
OpenCV提供了equalizeHist這個函式來進行灰度影象的直方圖均衡化,使用方法很簡單,這裡就不專門介紹這個函數了,直接上原始碼吧,至於實現的原理,大家可以參考相關文獻。
程式碼中用到的影象下載連結:http://pan.baidu.com/s/1nuZsmbZ 密碼:npom
影象處理開發資料、影象處理開發需求、影象處理接私活掙零花錢,可以搜尋公眾號"qxsf321",並關注!
//opencv版本:OpenCV3.0 //VS版本:VS2013 //Author:qxsf321.net #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/imgproc/types_c.h> #include <opencv2/highgui/highgui.hpp> #include <opencv2/highgui/highgui_c.h> #include <iostream> using namespace cv; using namespace std; int main() { Mat srcImage = imread("20.jpg"); imshow("【原圖】", srcImage); Mat grayImage; cvtColor(srcImage, grayImage, CV_BGR2GRAY); imshow("【灰度圖】", grayImage); Mat dstImage; //直方圖均衡化 equalizeHist(grayImage, dstImage); imshow("【均衡化後的灰度圖】", dstImage); waitKey(0); return 0; }
程式碼非常簡單,這裡就不多做贅述了!
執行結果截圖如下: