24.直方圖均衡化

1.主要內容

  • 什麼是直方圖(Historgram)
  • 直方圖均衡化
  • API說明

2.什麼是直方圖

  • 舉例
    假設有圖像數據8x8,像素值範圍0~14共15個灰度等級,統計得到各個等級出現次數及直方圖如下圖所示
    在這裏插入圖片描述
    由個像素值出現的數字得出下列的直方圖
    在這裏插入圖片描述
  • 圖像直方圖,是指對整個圖像在灰度範圍內的像素值(0-255)統計頻率次數,據此生成的直方圖,稱爲圖像直方圖-直方圖。直方圖反映了圖像灰度的分佈情況。是圖像的統計學特徵。

3.圖像直方圖(是一種提高圖像對比度的方法,拉伸圖像灰度值範圍)

  • 原圖
    在這裏插入圖片描述
  • 經過直方圖均衡化實現後的效果
  • 直方圖均衡化是一種提高圖像對比度的方法,拉伸圖像灰度值範圍
    在這裏插入圖片描述
  • 直方圖均衡化的實現
    如何實現,通過上一課中的remap我們知道可以將圖像灰度分佈從一個分佈映射到另外一個分佈,然後在得到映射後的像素值即可。
    公式:
    在這裏插入圖片描述
    在這裏插入圖片描述

4.API說明

equalizeHist(
    InputArray src,//輸入圖像,必須是8-bit的單通道圖像
    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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章