1. 程式人生 > >OpenCV3.3—影象增強(方法:直方圖均衡化 equalizeHist )

OpenCV3.3—影象增強(方法:直方圖均衡化 equalizeHist )

1. 直方圖均衡化

直方圖均衡化是通過調整影象的灰階分佈,使得在0~255灰階上的分佈更加均衡,提高了影象的對比度,達到改善影象主觀視覺效果的目的。對比度較低的影象適合使用直方圖均衡化方法來增強影象細節。

均衡化處理後的影象只能是近似均勻分佈,均衡化影象的動態範圍擴大了。但是本是擴大了量化間隔,量化級別減少。原來灰度不同的畫素經過處理後可能變的相同,形成了一片相同的灰度區域;

OpenCV函式:

void equalizaeHist(InputArray src,OutputArray dst)

步驟: 

  1.  計算輸入影象直方圖HH 
  2. 進行直方圖歸一化,直方圖的組距的和為255 
  3. 計算直方圖積分H′(i)=∑0≤j≤iH(j)H′(i)=∑0≤j≤iH(j) 
  4. 以H′H′作為查詢表進行影象變換dst(x,y)=H′(src(x,y))

2. 示例

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    Mat srcImage, dstImage;

    //輸入原始影象
    srcImage = imread("..\\1.bmp");
    
    cvtColor(srcImage, srcImage, COLOR_BGR2GRAY);

    //進行直方圖均衡化
    equalizeHist(srcImage, dstImage);

    return 0;
}