一、编程环境:
OpenCV | 4.1.0 |
IDE | Visual Studio 2017 Enterprise (15.9.13) |
操作系统 | Windows 10 x64 中文专业版 (1903) |
二、直方图均衡:
- 作用:图像直方图均衡可以用于图像增强、对输入图像进行直方图均衡处理,提升后续对象检测的准确率(在OpenCV人脸检测的代码演示中很常见)。医学影像图像与卫星遥感图像也经常通过直方图均衡来提升图像质量。
- 直方图均衡函数:
void equalizeHist( InputArray src, OutputArray dst );
src:输入为8位单通道图像(如:灰度图)。
dst:输出的图像类型、尺寸与src相同。
注意:如果是多通道图像(彩图),则先分离所有通道,每个通道各自直方图均衡后,再把所有通道合并,就得到多通道图像的直方图均衡后的效果了。
三、示例代码:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
Mat src = imread("../images/test.png");
if (src.empty()) {
printf("不能加载图像!\n");
return -1;
}
namedWindow("1--原图", WINDOW_AUTOSIZE);
Mat gray, dst;
cvtColor(src, gray, COLOR_BGR2GRAY);
imshow("1--原图", gray);
equalizeHist(gray, dst);
imshow("2--直方图均衡化", dst);
waitKey(0);
return 0;
}