• opencv 直方图


    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...
    ");
            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;
    }

     

     

    参考:http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/histograms/histogram_equalization/histogram_equalization.html

  • 相关阅读:
    105.输出控制缓存
    修正IE6中FIXED不能用的办法,转载
    Linux C语言 网络编程(二) server模型
    阿里巴巴实习生面试悲慘经历
    初学JDBC,JDBC工具类的简单封装
    初学JDBC,最简单示例
    判断不同浏览器
    POI读写Excel简述之写入
    POI读写Excel简述之读取
    eclipse中新建javaweb项目,查看某些类的源码
  • 原文地址:https://www.cnblogs.com/zhaobinyouth/p/11806191.html
Copyright © 2020-2023  润新知