Computer >> Máy Tính >  >> Lập trình >> C ++

Hàm equalizeHist () trong OpenCV là gì?

Biểu đồ của một hình ảnh cho biết tần số của các giá trị cường độ pixel. Trong biểu đồ hình ảnh, trục X hiển thị các cường độ màu xám và trục Y hiển thị tần suất của các cường độ này.

Cân bằng biểu đồ cải thiện độ tương phản của hình ảnh, để mở rộng phạm vi cường độ. Bạn có thể cân bằng biểu đồ của một hình ảnh nhất định bằng cách sử dụng hàm equalizeHist () .

Cú pháp cơ bản của hàm này là -

Cú pháp

equalizeHist(Source Matrix, Destination Matrix).

Trong chương trình này, nó cân bằng một hình ảnh thang độ xám. Nó có nghĩa là chỉ có một kênh. Hàm này đã cân bằng giá trị pixel của kênh đơn đó. Tuy nhiên, khi chúng ta áp dụng chức năng này cho ảnh màu, chúng ta phải xác định các kênh khác nhau thay vì nguồn và ma trận đích. Trong chương trình sau, chúng ta sẽ thấy ứng dụng của equalizehist () trong một hình ảnh màu.

Chương trình sau minh họa equalizeHist () trong OpenCV.

Ví dụ

#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;
}

Đầu ra

Hàm equalizeHist () trong OpenCV là gì?