IT学习站-137zw.com

作者: 米老鼠和蓝精鼠v
查看: 55|回复: 0

more +资源更新Forums

more +随机图赏Gallery

价值368元 从Docker到K8S实战视频教程 五年工程师主讲 百度云价值368元 从Docker到K8S实战视频教程 五年工程师主讲 百度云
价值299 opencv+tensorflow入门人工智能图像处理 百度云 网盘 下载价值299 opencv+tensorflow入门人工智能图像处理 百度云 网盘 下载
价值199元 Nginx中间件搭建负载均衡安全防护动静分离视频 ...价值199元 Nginx中间件搭建负载均衡安全防护动静分离视频 ...
价值348元 RabbitMQ消息中间件技术精讲2018视频教程 百度云价值348元 RabbitMQ消息中间件技术精讲2018视频教程 百度云
云豹直播平台全套源码无限制完美运营版(安卓+IOS)源码云豹直播平台全套源码无限制完美运营版(安卓+IOS)源码
Spring Security4企业权限管理视频,完整版课程下载Spring Security4企业权限管理视频,完整版课程下载

【数字图像处理】灰度直方图、直方图均衡化、直方图规定化

【数字图像处理】灰度直方图、直方图均衡化、直方图规定化

[复制链接]
米老鼠和蓝精鼠v | 显示全部楼层 发表于: 2019-11-14 13:55:01
米老鼠和蓝精鼠v 发表于: 2019-11-14 13:55:01 | 显示全部楼层 |阅读模式
查看: 55|回复: 0

你还没有注册,无法下载本站所有资源,请立即注册!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
灰度直方图

  一幅图像由不同灰度值的像素组成,图像中灰度的分布情况是该图像的一个重要特征。图像的灰度直方图就描述了图像中灰度分布情况,能够很直观的展示出图像中各个灰度级所占的多少。
图像的灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数:其中,横坐标是灰度级,纵坐标是该灰度级出现的频率。
灰度直方图的计算公式如下:其中,rk">rkrk是像素的灰度级,nk">nknk是具有灰度rk">rkrk的像素的个数,MN">MNMN是图像中总的像素个数。

直方图均衡化 Histogram Equalization

假如图像的灰度分布不均匀,其灰度分布集中在较窄的范围内,使图像的细节不够清晰,对比度较低。通常采用直方图均衡化直方图规定化两种变换,使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的。
直方图均衡化,对图像进行非线性拉伸,重新分配图像的灰度值,使一定范围内图像的灰度值大致相等。这样,原来直方图中间的峰值部分对比度得到增强,而两侧的谷底部分对比度降低,输出图像的直方图是一个较为平坦的直方图。
均衡化算法

直方图的均衡化实际也是一种灰度的变换过程,将当前的灰度分布通过一个变换函数,变换为范围更宽、灰度分布更均匀的图像。也就是将原图像的直方图修改为在整个灰度区间内大致均匀分布,因此扩大了图像的动态范围,增强图像的对比度。通常均衡化选择的变换函数是灰度的累积概率,直方图均衡化算法的步骤:

  • 计算原图像的灰度直方图 P(Sk)=nkn">P(Sk)=nknP(Sk)=nkn,其中n">nn为像素总数,nk">nknk为灰度级Sk">SkSk的像素个数
  • 计算原始图像的累积直方图 CDF(Sk)=∑i=0knin=∑i=0kPs(Si)">CDF(Sk)=∑i=0knin=∑i=0kPs(Si)CDF(Sk)=∑i=0knin=∑i=0kPs(Si)
  • Dj=L⋅CDF(Si)">Dj=L⋅CDF(Si)Dj=L⋅CDF(Si),其中 Dj">DjDj是目的图像的像素,CDF(Si)">CDF(Si)CDF(Si)是源图像灰度为i的累积分布,L是图像中最大灰度级(灰度图为255)
灰度直方图均衡化实现的步骤

1.统计灰度级中每个像素在整幅图像中的个数
2.计算每个灰度级占图像中的概率分布
3.计算累计分布概率
4.计算均衡化之后的灰度值
5.映射回原来像素的坐标的像素值
示例说明

来看看通过上述步骤怎样实现的拉伸。假设有如下图像:
【数字图像处理】灰度直方图、直方图均衡化、直方图规定化  技术博客

得图像的统计信息如下图所示,并根据统计信息完成灰度值映射:
【数字图像处理】灰度直方图、直方图均衡化、直方图规定化  技术博客

映射后的图像如下所示:
【数字图像处理】灰度直方图、直方图均衡化、直方图规定化  技术博客

灰度直方图均衡化实现

[code]            //img_size为图像大小            //Image_Use为图像数组
            //Use_ROWS为行,Use_Line为列
            float img_size = Use_ROWS * Use_Line * 1.0;                    int count_data[256],huidu_data[256]; //计数统计、均衡化的灰度值                    float midu_data[256],leijimidu_data[256];  //概率密度、累计概率密度            //数组初始化                    memset(count_data, 0, sizeof(count_data));                    memset(midu_data, 0.0, sizeof(midu_data));                    memset(leijimidu_data, 0.0, sizeof(leijimidu_data));                    memset(huidu_data, 0.0, sizeof(huidu_data));                    //1.统计灰度级中每个像素在整幅图像中的个数                    for(int i = 0; i < Use_ROWS; i++)                    {                        for(int j = 0; j < Use_Line; j++)                        {                          count_data[Image_Use[j]]++;                                                  }                    }                    //2.计算每个灰度级占图像中的概率分布                    for(int i = 0; i < 256; i++)                       {                                                midu_data =  count_data/ img_size;                                            }                      //3.计算累计分布概率                    leijimidu_data[0] =  midu_data[0];                           for(int i = 1; i < 256; i++)                       {                                                 leijimidu_data =  midu_data+leijimidu_data[i-1];                                            }                      //4.计算均衡化之后的灰度值                    for(int i =0; i
137zw.com IT学习站致力于免费提供精品的java技术教程和python技术教程,CCNA书籍/资料/CCNP书籍/资料教程/CCIE书籍/资料/H3C学习/认证/一级建造师考试/微软学习/认证/包括基础教程和高级实战教程,同时也提供分享网站源码下载和互联网相关一系列的技术教程,我们想做的就是让知识分享更有价值!(IT学习站官方唯一域名地址:www.137zw.com 请谨防假冒网站!)本站所有资源全部收集于互联网或网友自行分享,分享目的仅供大家学习与参考,如无意中侵犯您的合法权益,请联系本站管理员进行删除处理!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

浙ICP备19022368号-1|Archiver|手机版|IT学习站-137zw.com

GMT+8, 2020-7-6 00:38 , Processed in 0.259624 second(s), 33 queries .

快速回复 返回顶部 返回列表