4.3中增强对比度是将某些像素值过低或过高的像素归为0和255,别的像素重新映射得到的,这个方法确实可以简单有效地提高图像质量,但很多时候图像的视觉缺陷并不是因为使用的强度值范围太窄,而是因为部分强度值的使用频率远高于其他强度值。
本例引入直方图均衡化函数,即让图像直方图尽可能平稳。
cv::equalizeHist
函数使用
函数签名
CV_EXPORTS_W void equalizeHist( InputArray src, OutputArray dst );
参数非常简单,分别是:源图像(灰度图),输出图像。
下面是实例
cv::Mat flower;
cv::Mat flower0 = cv::imread("flower.jpg");
cv::cvtColor(flower0, flower, cv::COLOR_BGR2GRAY);
cv::Mat result;
//均衡化
cv::equalizeHist(flower, result);
cv::imshow("flower", flower);
cv::imshow("result", result);
//直方图对比
Histogram1D h;
cv::Mat hist1 = h.getHistogramImage(flower);
cv::Mat hist2 = h.getHistogramImage(result);
cv::imshow("hist1", hist1);
cv::imshow("hist2", hist2);
效果
均衡化后的图像(这张图效果一般)
直方图对比