OpenCV代碼,用於彩色圖像的直方圖均衡化在YCbCr顏色空間。
#include<iostream>
#include "opencv2/imgcodecs.hpp"
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace std;
using namespace cv;
int main(){
Mat img = cv::imread("D:\\用戶目錄\\我的圖片\\001.JPG");
if (img.empty()){
std::cout << "打開圖片失敗" << std::endl;
system("pause");
return -1;
}
imshow("img", img);
// 直方圖均衡化
Mat matArray;
cvtColor(img, matArray, CV_BGR2YCrCb);
Mat imgYcbcr[3];
split(matArray, imgYcbcr);
equalizeHist(imgYcbcr[0], imgYcbcr[0]);
merge(imgYcbcr,3, matArray);
cvtColor(matArray, img, CV_YCrCb2BGR);
imshow("imgHist", img);
waitKey();
destroyAllWindows()
return 0;
}
輸入img
輸出img