#include "ImageApplyAutoContrast.h" #include using namespace std; using namespace cv; CImageApplyAutoContrast::CImageApplyAutoContrast() { } CImageApplyAutoContrast::~CImageApplyAutoContrast() { } void CImageApplyAutoContrast::apply(cv::Mat& pDib, int side) { (void)side; if (pDib.empty()) return; if(pDib.channels() == 1) cv::equalizeHist(pDib,pDib); else { std::vector mats(3); cv::split(pDib,mats); for(size_t i = 0; i < mats.size(); i++) if(!mats[i].empty()) cv::equalizeHist(mats[i], mats[i]); cv::merge(mats,pDib); } } void CImageApplyAutoContrast::apply(std::vector &mats, bool isTwoSide) { (void)isTwoSide; int i = 0; for (cv::Mat& var : mats) { if (i != 0 && isTwoSide == false) break; if (!var.empty()) apply(var, 0); i++; } }