1.主要內容
- 什麼是直方圖(Historgram)
- 直方圖均衡化
- API說明
2.什麼是直方圖
- 舉例
假設有圖像數據8x8,像素值範圍0~14共15個灰度等級,統計得到各個等級出現次數及直方圖如下圖所示
由個像素值出現的數字得出下列的直方圖
- 圖像直方圖,是指對整個圖像在灰度範圍內的像素值(0-255)統計頻率次數,據此生成的直方圖,稱爲圖像直方圖-直方圖。直方圖反映了圖像灰度的分佈情況。是圖像的統計學特徵。
3.圖像直方圖(是一種提高圖像對比度的方法,拉伸圖像灰度值範圍)
- 原圖
- 經過直方圖均衡化實現後的效果
- 直方圖均衡化是一種提高圖像對比度的方法,拉伸圖像灰度值範圍
- 直方圖均衡化的實現
如何實現,通過上一課中的remap我們知道可以將圖像灰度分佈從一個分佈映射到另外一個分佈,然後在得到映射後的像素值即可。
公式:
4.API說明
equalizeHist(
InputArray src,
OutputArray dst
)
5.演示代碼
#include<opencv2\opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main(int argc,char ** argv) {
Mat src, dst;
src = imread("G:\\opencvTests\\C2.png");
if (src.empty())
{
cout << "Could not find this photo" << endl;
return -1;
}
namedWindow("input", CV_WINDOW_AUTOSIZE);
imshow("input",src);
cvtColor(src,dst,CV_BGR2GRAY);
equalizeHist(dst,dst);
imshow("output",dst);
waitKey(0);
return 0;
}