zoukankan      html  css  js  c++  java
  • opencvequalizeHist均衡化直方图增强对比度

     直方图均衡化是一种常见的增强图像对比度的方法,使用该方法可以增强局部图像的对比度,尤其在数据较为相似的图像中作用更加明显

    直方图是什么:

    • 直方图是图像中像素强度分布的图形表达方式.
    • 它统计了每一个强度值所具有的像素个数.

    直方图均衡化是什么:

    • 直方图均衡化是通过拉伸像素强度分布范围来增强图像对比度的一种方法.

    注意: 直方图均衡化只能处理单通道

    灰度单通道 

    1.png

      

    #include<opencv2/opencv.hpp>
    #include<iostream>
    
    int main(int argc, char** argv) {
    
        cv::Mat src = cv::imread("D:/bb/tu/1.png");
        imshow("src", src);
    
        cv::Mat gray, dst;
        cvtColor(src, gray, cv::COLOR_BGR2GRAY);
        equalizeHist(gray, dst);//直方图均衡化
        imshow("dst", dst);
    
        cv::waitKey(0);
        return 0;
    }

    彩色图方法一 

    对BGR三个通道分别处理,再合并 

    #include<opencv2/opencv.hpp>
    #include<iostream>
    
    int main(int argc, char** argv) {
    
        cv::Mat src = cv::imread("D:/bb/tu/1.png");
        imshow("src", src);
    
        std::vector<cv::Mat> chan;
        cv::split(src, chan);//通道分割
        cv::Mat blue, green, red,dst;
        blue = chan.at(0);
        green= chan.at(1);
        red= chan.at(2);
    
        //对BGR通道分别做直方图均衡化
        equalizeHist(blue, blue);
        equalizeHist(green, green);
        equalizeHist(red, red);
    
        merge(chan, dst);//合并通道
        imshow("dst", dst);
    
    
        cv::waitKey(0);
        return 0;
    }

    彩色图方法二 

    通过对HSV色彩空间的V通道进行直方图均衡化,再合并H,S,V三个通道后转化为BGR图像 

    V通道简单来说就是图像明暗通道

    HSV颜色模型:看  https://baike.baidu.com/item/HSV/547122?fr=aladdin

    #include<opencv2/opencv.hpp>
    #include<iostream>
    
    int main(int argc, char** argv) {
    
        cv::Mat src = cv::imread("D:/bb/tu/1.png");
        imshow("src", src);
    
        cv::Mat hsv,v,dst;
        cv::cvtColor(src,hsv, cv::COLOR_BGR2HSV);//转化为HSV图像
        std::vector<cv::Mat> chan;
        cv::split(hsv, chan);//通道分割
        equalizeHist(chan.at(2), chan.at(2));//对v通道直方图均衡化
        merge(chan, dst);//合并通道
        cv::cvtColor(dst, dst, cv::COLOR_HSV2BGR);//HSV转化为BGR图像
        imshow("dst", dst);    
    
    
        cv::waitKey(0);
        return 0;
    }

      

  • 相关阅读:
    AQTime : ASP.NET Applications
    Ext Js 之坑
    才看到这个强贴,真是out了
    Ext JS多选控件 MultiCombo
    杂记
    NHibernate中用Criteria查询,不采用SetResultTransformer(new DistinctRootEntityResultTransformer())处理Distinct
    [转]IntelliJ IDEA整合VSS2005的配置
    Ext JS: Formpanel中联动ComboBox赋初值
    c#中using 的作用
    DIV+CSS中标签ul ol li dl dt dd用法
  • 原文地址:https://www.cnblogs.com/liming19680104/p/15713796.html
Copyright © 2011-2022 走看看