• 2 均衡化直方图


    均衡直方图采所运用是是一个概率积分函数,对于某些像素个数很少,那么就需要压缩其存在的像素空间,甚至归于其他类像素点;对于某些像素个数很多,那么就需要延拓其存在的像素空间,这样看起来更加明显。概率积分函数为单调递增,形式如:

         

    Pr(r)是r的概率密度函数,Ps(s)是s的概率密度函数。Pr(r)已知,在此处表示像素范围值,为255;dr表示像素值为小于等于s的个数,ds表示总的像素个数。最后化简成如下形式:

        

    下面是运行代码:

    需要说明:

    【1】本程序实现的功能与OPenCV的 equalizeHist( src,dst )相同,但没有优化;

    【2】运行中发现,map的执行速度远远不如vector容器。

    【3】OpenCV中内置重新设置矩阵大小的函数 cv::resize

    #include "opencv.h"
    
    void equalize(cv::Mat& src, cv::Mat& dst)
    {
    
        if (src.empty()) { cout << "Do not load image ..." << endl; return; }
        cv::resize(src, dst, cv::Size(src.cols, src.rows));
        vector<int> s(256, 0);
    
        for (int i = 0; i < src.rows; i++)
        {
            const uchar* temp = src.ptr <uchar>(i);
            for (int j = 0; j < src.cols; j++)
                s[temp[j]]++;
        }
    
        int temp = 0;
        for (int i = 1; i < 256; i++)
            s[i] = s[i] + s[i - 1];
    
        for (int i = 0; i < 256; i++)
            s[i] = (int)(1.0 * 256 * s[i] / s[255]);
    
        for (int i = 0; i < src.rows; i++)
        {
            uchar* temp = dst.ptr <uchar>(i);
            for (int j = 0; j < src.cols; j++)
                temp[j] = s[temp[j]];
        }
    
    }
    
    
    //int main()
    //{
    //    string filename = "autum.jpg";
    //    cv::Mat src, dst;
    //    src = cv::imread(filename);
    //    cv::cvtColor(src, src, cv::COLOR_RGB2GRAY);
    //    equalize(src, dst);
    //
    //    cv::namedWindow("img", 0);
    //    cv::imshow("img", src);
    //    cv::namedWindow("equalize", 0);
    //    cv::imshow("equaliize", dst);
    //    cv::waitKey();
    //    return 0;
    //}
  • 相关阅读:
    【MariaDB】MariaDB的复制
    【MariaDB】MariaDB编译参数
    【MySQL】MySQL锁和隔离级别浅析二 之 INSERT
    【MySQL】查询使用临时表
    【MySQL】使用mysqlbinlog回滚
    ELK学习笔记(三)单台服务器多节点部署
    ELK学习笔记(二)-HelloWorld实例+Kibana介绍
    ELK学习笔记(六)分布式集群
    ELK学习笔记(四)SpringBoot+Logback+Redis+ELK实例
    ELK学习笔记(一)安装Elasticsearch、Kibana、Logstash和X-Pack
  • 原文地址:https://www.cnblogs.com/2Bthebest1/p/11013705.html
Copyright © 2020-2023  润新知