opencv 直方图

夙愿已清 提交于 2019-12-03 20:09:46

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;
}

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!