Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

OpenCV의 equalizeHist() 함수는 무엇입니까?

<시간/>

히스토그램 이미지의 는 픽셀의 강도 값의 빈도를 보여줍니다. 이미지 히스토그램에서 X축은 그레이 레벨 강도를 나타내고 Y축은 이러한 강도의 빈도를 나타냅니다.

히스토그램 균등화 명암 범위를 확장하기 위해 이미지의 대비를 개선합니다. equalizeHist() 함수를 사용하여 주어진 이미지의 히스토그램을 균등화할 수 있습니다. .

이 함수의 기본 구문은 -

입니다.

구문

equalizeHist(Source Matrix, Destination Matrix).

이 프로그램에서는 회색조 이미지를 균등화합니다. 하나의 채널만 존재한다는 의미입니다. 이 기능은 단일 채널의 픽셀 값을 균등화했습니다. 그러나 컬러 이미지에 이 기능을 적용할 때 소스 및 대상 매트릭스 대신 다른 채널을 정의해야 합니다. 다음 프로그램에서는 컬러 이미지에 equalizehist()를 적용하는 것을 볼 수 있습니다.

다음 프로그램은 equalizeHist() OpenCV의 기능.

예시

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
int main(int argc, const char** argv) {
   Mat original;//Declaring a matrix//
   original = imread("sky.jpg");//loading image//
   vectorchannels;//vector to store each channel in different array//
   Mat hist;//Declaring a matrix//
   cvtColor(original, hist, COLOR_BGR2YCrCb);//Converting from BGR to YCrCB//
   split(hist, channels);//splitting channels//
   equalizeHist(channels[2], channels[2]);//applying histogram equalizer in 2nd channel//
   Mat histeql;//Declaring a matrix//
   merge(channels, hist);//merging equalized channel with actual matrix//
   cvtColor(hist, histeql, COLOR_YCrCb2BGR);//Reconverting to BGR//
   namedWindow("original");//window to show original image//
   namedWindow("hist");//window to show edited image//
   imshow("original", original);//showing original image//
   imshow("hist", histeql);//showing edited image//
   waitKey(0);//wait for keystroke//
   return 0;
}

출력

OpenCV의 equalizeHist() 함수는 무엇입니까?