1.简介
图像直方图均衡化可以用于图像增强.
对输入图像进行直方图均衡化处理,提升后续对象检测的准确率在OpenCV人脸检测的代码演示中已经很常见。此外对医学影像图像与卫星遥感图像也经常通过直方图均衡化来提升图像质量。
2.opencv API
直方图均衡化一般先将图像转为灰度图,然后对其进行均衡化
OpenCV中直方图均衡化的API很简单
- equalizeHist(src, dst)
3.示例
将彩色图像进行直方图均衡化已达到图像增强
步骤:
1.彩色图像通道进行分离(RGB)
2.每一个单通道进行直方图均衡化
3.将均衡化后的图像进行合并得到彩色图像
#include <opencv2/opencv.hpp>
int main(int argc, char* argv[])
{
Mat src = imread("dog.jpg");
if (src.empty()) {
printf("could not load image...\n");
return -1;
}
imshow("src", src);
vector<Mat> bgr;
split(src, bgr);
Mat dst;
equalizeHist(bgr[0], bgr[0]);
equalizeHist(bgr[1], bgr[1]);
equalizeHist(bgr[2], bgr[2]);
merge(bgr, dst);
imshow("eq", dst);
waitKey(0);
return 0;
}





