精华内容
下载资源
问答
  • 数字图像直方图
    千次阅读
    2021-11-11 11:05:37

    一幅数字图像,若对应于每一个灰度值,统计出具有该灰度值的像素数,并据此绘制出像素数灰度值图形,该图形被称为这个图像的灰度直方图。
    灰度直方图是一幅图像中各个像素灰度值出现频数的统计结果,只反映该图像中不同灰度值出现的频数,而不反应某一灰度的像素所在的位置。因此说灰度直方图,只包含了该图像中某一个灰度值的像素出现的概率,丢失了其所在位置的信息。
    由于直方图是对具有相同灰度值的像素统计计数得到的,因此,一幅图像各个子区域的直方图之和就是该图像全图的直方图。
    直方图的应用:
    一幅图像的背景与物体在直方图上会呈现双峰性,在这种情况下可以比较容易的根据两峰之间的谷值来确定二值化的阈值。

    更多相关内容
  • 获取图像直方图,绘制到界面,qt5.12+mingw64环境开发,demo很简单,只是为了演示从QImage中取得像素级数据,供有需者下载
  • 本文介绍了连续图像和数字图像直方图匹配(直方图规定化)的原理、处理过程,并提供了案例进行了讲解。可以看到,直方图均衡处理是直方图匹配的一个重要桥梁。 最后,对于直方图规定化这个翻译个人觉得很low,个人...

    ☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython

    一、引言

    在《数字图像处理:直方图均衡(Histogram Equalization)的原理及处理介绍》了直方图均衡,直方图均衡能自动地确定均衡需要的变换函数,该函数能产生有灰度值均匀直方图的输出图像。当需要对一副图像自动增强时,这是一种好方法,因为这种处理结果可以预知(predictable)、实现简单。但是对某些应用,基于统一的直方图的基础增强(base enhancement)并不是最好的方法,特别地有时处理人员希望能指定结果图像的直方图形状(specify the shape of the histogram),这时就需要用到直方图匹配(规定化)。

    本文是《数字图像处理》第三章直方图处理中的直方图匹配或规定化相关章节的内容,阅读本文需要具备导数和微积分相关知识。如果需要复习或学习相关高数知识,请参考《人工智能数学基础》。

    二、知识概要:直方图匹配或规定化

    2.1、概述

    直方图匹配(Histogram Matching ),又称为直方图规定化(Histogram Specification),是指在处理图像时,由处理人员指定输出图像的直方图形状。

    老猿注

    • 指定直方图形状应该是通过指定直方图的PDF函数来实现的;
    • 本部分的原理没有采用原文相同的方式介绍,因为原文比较拗口,乍一看有点难以理解,老猿按自己的理解来介绍。

    2.2、连续灰度值的非数字图像直方图匹配或规定化

    2.2.1、相关原理

    在《数字图像处理:直方图均衡(Histogram Equalization)的原理及处理介绍》介绍了对于非数字图像的灰度值连续图像,对于灰度值为r的图像到直方图均衡后灰度为s的图像有如下公式:
    在这里插入图片描述

    现假设针对该输入图像,存在另一个灰度值集合z的图像,其图像内容与灰度值集合为r的图像是同一副图像,只是灰度值不同(这里的r、z、s在公式内是表示单个像素的灰度值,适用于图像的每个像素,同时在描述时r、z、s又表示了同一个图像所有像素的灰度集合的阵列)。

    类似式(3.3-10),z对应的灰度图像通过如下函数G(z)可以转换为s对应的图像:
    在这里插入图片描述
    即可得:
    在这里插入图片描述
    这是因为针对同一图像有不同灰度分布的情况,都可以通过直方图均衡化为灰度值均衡的图像,这就意味着两副不同灰度值的同样内容的图像都可以通过直方图均衡后的结果图像关联起来,并以此为中介求得两副相同内容但灰度值不同的图像之间的灰度的映射关系。

    由式(3.3-12) z = G-1|T(r)|可知:z和r的映射只需要z和r对应的两副图像的灰度值的概率密度函数经过定积分以及四则运算就可以求出。

    这就是说,两副内容相同灰度值不同的图像,可以很方便地找到两副图像的灰度映射关系。这也就是为什么该灰度变换被称为直方图匹配或直方图规定化的原因,它们的目的就是给定两副相同内容不同灰度分布图像,通过这两副图像本身的灰度概率密度函数就可以找到二者的映射关系。

    2.2.2、连续灰度图像的直方图规定化处理步骤

    通过以上三个式子可知,使用下列步骤,可由一幅给定图像得到一幅其灰度级具有指定概率密度函数的图像:

    1. 首先由输入图像的概率密度函数PDF使用式(3.3-10)对输入图像进行均衡得到像素值为s的输出图像;
    2. 使用式(3.3-11)结合输出图像的PDF求得输出图像到直方图均衡像素值为s的图像的映射函数G(z);
    3. 对均衡后的图像像素值s进行G(z)的反变换G-1(s),就可以得到输出图像的像素值。

    当所有像素都转换后,就可以得到PDF等于指定函数的输出图像。

    2.2.3、连续灰度图像的直方图规定化案例

    :假设采用连续灰度值的一幅图像的灰度 PDF 为pr(r)= 2r/(L-1)²,0≤r≤(L-1),对于其他r值有pr(r)=0。寻找一个变换函数,使得产生的图像的灰度PDF是pz(z)=3z²/(L-1)³,0≤z≤(L-1),而对于其他z值有pz(z)=0。

    :上面pr、pz的字母r和z都是下标,表示不同的概率密度函数,为了输入方便就写成了pr、pz,下同。

    解:
    首先,我们对区间[0,L-1]寻找直方图均衡变换:
    在这里插入图片描述
    由定义可知,对于范围[0,L-1]外的值,该变换为0。按直方图均衡变换的处理可知,输人灰度值的平方除以(L-1)(老猿注:原文和译本这里都说是(L-1)²,经笔者仔细核实应该没有平方)将产生一幅灰度为s并具有均匀PDF的图像。

    为了得到pz(z)=3z²/(L-1)³指定直方图的输出图像,在[0,L-1]区间上,pz(z)对应的直方图均衡变换公式为:
    在这里插入图片描述
    由定义可知在该区间外这个函数也为0。最后,我们要求G(z)=s. 但G(z)=z³/(L-1)²;因此z³/(L-1)²=s,可得:
    在这里插入图片描述
    这表明如果我们用(L-1)²乘以直方图均衡过的每一个像素,取该乘积的 1/3 次幂,结果将是一幅我们所期望的图像,该图像在区间[0,L-1]内z的灰度的PDF为pz(z)=3z²/(L-1)³。

    因为s=r²/(L-1),我们可以直接由输入图像的灰度r生成z:
    在这里插入图片描述
    这样原图像中每一个像素值的平方与(L-1)相乘,然后再取该乘积的1/3次幕,将得到其灰度级z具有规定 PDF 的图像。

    2.2.4 、连续灰度图像的直方图规定化小结

    通过前面的原理及案例介绍,我们看到,连续灰度值的非数字图像的直方图规定化是很容易理解的,并且均衡输人图像的中间一步可以跳过;我们需要的是得到将r映射为s的变换函数T(r)。然后,这两步可以合并为从r到z的一步变换。即由:
    在这里插入图片描述
    就可以求出T(r)

    但实际中,比较困难的是寻找T(r)和G的反函数形式,老猿认为由于输出图像的PDF是指定的,要找T(r)和G的反函数其实最困难的是一副输入图像的pr(r)怎么求得,因为输入图像只有各个图像元素的灰度值。

    2.3、数字图像的直方图匹配或规定化

    2.3.1、相关原理

    连续灰度非数字图像求其映射到结果图像的映射函数比较困难(老猿认为主要是输入图像的PDF函数不好求),但幸运的是,计算机处理的是数字图像,因此相关解决方案可以大大简化。

    在《数字图像处理:直方图均衡(Histogram Equalization)的原理及处理介绍》中介绍了数字图像直方图均衡变换的公式:
    在这里插入图片描述
    它是式(3.3-10)的离散形式,其中MN是图像像素的行数M与列数N的乘积,L为该表示图像灰度所在数字区间的上限,即图像中可能的灰度级数(intensity levels),如8bit图像为256,nj表示灰度值=j的像素个数,sk为输入图像灰度值为rk经过变换后映射到目标图像的灰度值,T(rk)表示将输入灰度值rk映射到sk的变换函数。

    假设有一幅与输入图像内容相同灰度值不同的数字图像,假设其所有灰度值为Z0–Zq,每个灰度值zi出现的概率为pz(zi),那么对其进行直方图均衡对应的公式为式(3.3-11)对应的离散形式:
    在这里插入图片描述
    由于G(Zq)=Sk,因此有:
    在这里插入图片描述
    也就是说,对于灰度值为Sk的输入图像,对任意给定了输出图像的灰度值Zq,能找到一个从输入图像的灰度值映射到输出图像灰度值的变换函数,从而实现将输入图像映射到指定灰度值的输出图像。注意这里的Sk对应的灰度值为输入图像灰度为rk的灰度经直方图均衡变换后的灰度值。

    实践中使用该方法处理数字图像时,由于数字图像灰度值的有限性,我们可以通过式(3.3-14)计算出指定灰度值的输出图像的直方图均衡后的近似灰度值(因为数字图像灰度值为整数,因此对式(3.3-14)的计算结果要进行四舍五入),从而我们就构建了一个Zq到Sk的映射表,这样无需求出G函数的反函数,直接通过映射表的Sk的取值查到Zq的取值。例如表中第64行记录的Sk值最接近给定的Sk值,则Zq的q值=63(注意是从0开始计数),故Z63是G(Zq)=Sk最近似解。

    注意:使用式(3.3-14)计算出来的映射表,其数据源值为Z0-Zn,即对应灰度值范围为[0,L-1]的所有升序排列的整数,即Z0=0、Z1=1、…、n=l-1,其结果值为Sk对应的值。由于直方图均衡变换四舍五入取整后有可能Sk值组成的集合不包含[0,L-1]内所有整数。

    2.3.2、数字图像直方图规定化处理步骤

    假设Sk是直方图均衡后图像的灰度值,可以总结直方图规定化过程如下:

    1. 计算给定图像的直方图pr(r),并用它寻找式(3.3-13)的直方图均衡变换,把变换后图像的灰度sk四舍五入为范围[0,L-1]内的整数;
    2. 用式(3.3-14)对q=0、1、2、…、L-1计算变换函数G的所有值,其中pz(zi)是规定的直方图的值。把G的值四舍五入为范围[0,L-1]内的整数,并将G的输入和结果值存储在一个表中。注意式(3.3-14)是对规定的直方图进行直方图均衡变换,其结果为均衡化后直方图的灰度值,其值与步骤1中的sk一致,而输入是zi,zi的灰度值为i
    3. 对每一个值sk,k=0、1、2、…、L-1,使用步骤2存储的G值寻找相应的zq值,以使G(zq)最接近sk,并存储这些从s到z的映射。当满足给定sk的zq值多于一个时(即映射不唯一时),按惯例选择最小的值;
    4. 首先对输入图像进行均衡,然后使用步骤 3 找到的映射把该图像中的每个均衡后的像素值sk映射为直方图规定化后的图像中的相应zq值,形成直方图规定化后的图像。正如连续情况那样,均衡输入图像的中间步骤是概念上的。它可以用合并两个变换函数T和G的反函数跳过这一步。

    如早些时候提到的那样,对于满足条件(a’)严格单调和(b)函数值属于[0,L-1]范围的G的反函数,G必须是严格单调的,根据式(3.3-14),它意味着规定直方图的任何pz(zi)值都不能为零。当工作在离散数值的情况时,该条件可能不满足的事实并不是一个严重的实现问题,采用步骤3中取最小值的方式就可以解决。

    注意:步骤4前面几句的翻译有问题,看起来莫名其妙,其对应英文原文如下:
    Form the histogram-specified image by first histogram-equalizing the input image and then mapping every equalized pixel value, sk,of this image to the corresponding value zq in the histogram-specified image using the mappings found in step 3.

    老猿将其翻译在付费文章《数字图像处理:直方图匹配或规定化Histogram Matching (Specification)原理及感悟》中进行了修改。上述处理步骤实际上还是不怎么好理解,老猿也在该文中按自己的理解进行了介绍。

    2.3.3、数字图像的直方图规定化案例

    假设一幅大小为64x64像素(MN=4096)的3比特图像(L=8)的灰度分布如表3.1所示,其中灰度级是范围[0,L-1]=[0,7]中的整数。其灰度分布和直方图值如下:
    在这里插入图片描述
    现要求变换该直方图,以便使其具有表3.2第2列规定的值:
    在这里插入图片描述
    第一步,利用式(3.3-13)计算该输入图像均衡后的sk值,四舍五入后可以得到输入图像和均衡化图像的映射关系,sk中的k即为输入图像的对应灰度值:
    在这里插入图片描述

    第二步,利用式(3.3-14)计算表3.2中第2列的值计算规定直方图与均衡化后图像灰度值sk的映射关系,四舍五入后可以得到:
    在这里插入图片描述
    即得到sk(G(zq))和zq的映射关系:
    在这里插入图片描述

    使用步骤3中的方式查找每个sk对应的最小的zq值:
    在这里插入图片描述

    这儿有个问题,为什么sk为2的值被替换为了3?老猿才开始以为是印刷问题,看了英文原版也是3。仔细思考了下,终于理解了,相关介绍老猿在《数字图像处理:直方图匹配或规定化Histogram Matching (Specification)原理及感悟》中进行了介绍。

    得到表3.4以后,我们使用表中的映射把直方图均衡后的图像中的每个像素映射为新创建的直方图规定化图像中的相应像素,这样得到的结果直方图的值列在表3.2的第三列。由于sk值为2的值被替换为了3,导致最终结果并不完全与规定直方图匹配,但达到了将输入图像灰度朝指定灰度高度近似的效果。

    上述处理步骤中,得到直方图均衡后图像的中间步骤有助于解释该匹配过程,但这个步骤不是必须的,只需要得到r到s的映射和s到z的映射,然后用这些映射把原始像素直接映射到直方图规定化后的图像像素即可。

    2.3.4、直方图均衡与直方图匹配案例对比

    在这里插入图片描述
    上图3.23(a)显示了火星卫星(Phobos)图像,该图像由 NASA 的火星表面探测器拍摄。图3.23(b)显示了图3.23(a)的直方图。图像的大部分是暗色区域,产生了像素集中于灰度级暗端的直方图的特点。乍看之下,会得到直方图均衡化是增强该图像的一个好办法的结论,以便使暗区域的细节更清楚。下面的讨论将证明事实并非如此。

    在这里插入图片描述
    上图3.24(a)显示了由图3.23(b)所示直方图得到的直方图均衡变换[式(3.3-8)或式(3.3-13)]。这个变换函数最相关的特征是它从灰度0快速上升到接近190。这是因为输人直方图中有大量的像素灰度接近0。当这种变换应用于输入图像的灰度,以获得直方图的均衡效果时,最终结果是把非常窄的暗像素区间映射到输出图像灰度级的高端。因为输入图像的大量像素在此暗像素区间有精确的灰度值,所以我们希望结果是具有明亮、“冲淡”(washed-out)外观的图像。如图3.24(b)所示,情况确实如此。该图像的直方图示于图3.24©。注意,所有灰度级基本上都偏向了灰度范围的上半部。

    由于图3.24(a)中变换函数的问题是由原图像中大量灰度接近于0的像素引起的,一种合理的方法是修改图像的直方图,以便使其不再有这一属性。

    在这里插入图片描述
    图3.25(a)显示了一个人为规定的函数,该函数保持了原有直方图(图3.23(b))的基本形状,但在图像灰度暗区的灰度值却有更平滑的过渡。将这个函数取样为256个等间隔
    的离散值,就生成了所需的规定的直方图。

    使用式(3.3-14)从这一直方图得到的变换函数G(z),该变换在图3.25(b)中标注为变换(1)。类似地,由式(3.3-16)(使用前面讨论的逐步过程得到)导出的反变换函数G-1(s)在图3.25(b)中标注为变换(2)

    图3.25©中增强后的图像是把变换(2)用于图3.24(b)中直方图均衡化后的图像的像素得到的。比较这两幅图像可以看出,在使用直方图均衡得到的结果的基础上,直方图规定化图像的改进是很明显的。

    注意,原始直方图的细小改变会使图像的外观得到显著改进。图3.25(d)显示了图3.25©的直方图。该直方图最容易辨别的特征是其低端已向右移向灰度级的较亮区域(但并不过分),这正是我们所希望的。

    三、小结

    本文介绍了连续图像和数字图像直方图匹配(直方图规定化)的原理、处理过程,并提供了案例进行了讲解。可以看到,直方图均衡处理是直方图匹配的一个重要桥梁。

    到目前为止,虽然我们对直方图规定化已经很清楚了,但在结束这一节之前,我们要强调直方图规定化在大多数时候都是试错(trial-and-error)过程。这正像前边的例子中我们所做的那样,一个可用的指导路线是用手边的问题学习。但是,有时可能会遇到这样的情况,即定义“平均”直方图的外观,并把它作为规定的直方图。在这种情况下,直方图规定化就变成了一种直接的处理。然而,一般来说,并没有规定直方图的规则,对于任何一个给定的增强任务都必须借助于实际分析。

    最后,对于直方图规定化这个翻译个人觉得很low,个人感觉叫指定直方图更好理解,但Histogram Specification怎么翻译确实不太好把握,因此还是叫Histogram Matching直方图匹配最好。

    更多直方图处理相关知识请参考《数字图像处理》第三章学习总结感悟2:直方图处理》。

    更多图像处理请参考专栏OpenCV-Python图形图像处理》及《图像处理基础知识》的介绍。

    对于缺乏Python基础的同仁,可以通过老猿的免费专栏《 专栏:Python基础教程目录》从零开始学习Python。

    如对文章内容存在疑问或需要相关资料,可在博客评论区留言,或关注:老猿Python 微信公号发消息咨询,可通过扫描二维码加微信公众号。

    在这里插入图片描述

    写博不易,敬请支持:

    如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

    关于老猿的付费专栏

    1. 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
    2. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
    3. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录
    4. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。

    前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。

    对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。

    如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

    老猿Python,跟老猿学Python!

    ☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython

    展开全文
  • 图像直方图MATLAB代码

    2018-03-26 22:18:00
    图像直方图MATLAB代码图像直方图MATLAB代码图像直方图MATLAB代码图像直方图MATLAB代码图像直方图MATLAB代码图像直方图MATLAB代码
  • 实现对彩色图像直方图均衡化处理,不能采用封装好的统计直方图和均衡化函数。
  • 数字图像处理课程的第三次作业,包括图像灰度直方图的绘制、基于直方图的各种空域处理。参考课本是冈萨雷斯的《数字图像处理》
  • 图像处理中,直方图是非常重要,也是非常有用的一个处理要素。这篇文章主要介绍了python数字图像处理实现直方图与均衡化,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 图像直方图均衡、均值滤波、中值滤波和拉普拉斯锐化的matlab代码。包括测试图像和代码处理结果图。对数字图像处理教材例子复现。
  • 经典的图像增强技术之一直方图matlab实现及水下图片
  • 直方图是一个离散函数,它表示数字图像每一灰度级与该灰度级出现频率的对应关系。有的图像的灰度直方图在低值灰度区间上频率较大,使得图像中较暗区域中的细节常常看不清楚。为了使图像清晰,可将图像灰度范围拉开,...
  • 彩色图像直方图

    2018-11-07 16:11:28
    用于绘制彩色图像直方图,不是灰度图像,而是彩色图像
  • 直方图规定化可以变换直方图使之变为某个需要的形状,从而有选择地增强某个灰度值范围内的对比度或使图像灰度值的分布满足特定的要求。
  • 理解和掌握直方图直方图均衡、直方图匹配的原理和实现...采用直方图匹配重新处理图像,匹配直方图自选, 可采用多峰值高斯函数来模拟此类型直方图;采用局部直方图均衡对图像进行处理,以获得黑方块内的图像信息。
  • 一个简单的灰度图像直方图显示程序,需要有一张灰度图,同时改变图片名称
  • 数字图像处理,直方图均衡,直方图匹配,作业
  • Matlab图像直方图相关函数

    千次阅读 2021-05-08 04:15:17
    图像的灰度直方图(H是图像a.bmp的数据矩阵)imhist(H);%显示a的直方图histeq(H); %将图像a进行直方图均衡化adapthisteq(H); %将图像a进行直方图均衡化imhist函数只能处理二维数据,因此处理RGB图像,需先转化成灰度...

    图像的灰度直方图(H是图像a.bmp的数据矩阵)

    imhist(H);%显示a的直方图

    histeq(H); %将图像a进行直方图均衡化

    adapthisteq(H); %将图像a进行直方图均衡化

    imhist函数只能处理二维数据,因此处理RGB图像,需先转化成灰度图像,显示灰度直方图。

    例1:显示图像灰度直方图并进行直方图均衡化。

    H=rgb2gray(imread('peppers.png'));

    subplot(3,2,1);

    imshow(H);

    title('原图');

    subplot(3,2,2);

    imhist(H);

    title('原图直方图');

    subplot(3,2,3);

    H1=adapthisteq(H);

    imshow(H1);

    title('adapthisteq均衡后图');

    subplot(3,2,4);

    imhist(H1);

    title('adapthisteq均衡后直方图');

    subplot(3,2,5);

    H2=histeq(H);

    imshow(H2);

    title('histeq均衡后图');

    subplot(3,2,6);

    imhist(H1);

    title('histeq均衡后直方图');

    例2: 自己设计程序显示直方图,并实现直方图均衡化。

    直方图均衡化是直方图修正技术的一种。一幅均匀量化的自然图像的灰度直方图通常在低灰度区域的频率较大,这样的图像较暗,区域中的细节常常看不清楚。

    直方图均衡化可使得图像的灰度间距拉大或者使灰度分布均匀,从而增加了反差,使图像细节清晰,达到图像增强的目的。

    x=rgb2gray(imread('peppers.png'));

    [m,n]=size(x);

    p=zeros(1,256);

    for i=0:255

    p(i+1)=length(find(x==i))/(m*n);

    end

    subplot(2,2,1);

    bar(0:255,p,'b');

    title('原图直方图');

    subplot(2,2,2);

    imshow(x);

    title('原图');

    s=zeros(1,256);

    for i=1:256

    for j=1:i

    s(i)=p(j)+s(i);

    end

    end

    a=round(s*255);

    for i=0:255

    GPeq(i+1)=sum(p(find(a==i)));

    end

    subplot(2,2,3);

    bar(0:255,GPeq,'b')

    title('均衡化后的直方图');

    b=x;

    for i=0:255

    b(find(x==i))=a(i+1);

    end

    subplot(2,2,4);

    imshow(b)

    title('均衡化后图像');

    【matlab】图像直方图

    使用imhist函数(要先用rgb2gray转化为灰度图像) 利用matlab计算图像直方图函数为imhist() 具体用法: imhist( i );直接显示图像i的灰度直方图: imhist(i, ...

    OpenCV成长之路(5):图像直方图的应用

    正如第4篇文章所说的图像直方图在特征提取方面有着很重要的作用,本文将举两个实际工程中非常实用的例子来说明图像直方图的应用. 一.直方图的反向映射. 我们以人脸检测举例,在人脸检测中,我们第一步往往需要 ...

    OpenCV成长之路:图像直方图的应用

    OpenCV成长之路:图像直方图的应用 2014-04-11 13:57:03 标签:opencv 图像 直方图 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否 ...

    Matlab实现直方图均衡化

    G=imread('aini555.jpg'); I=rgb2gray(G); J=histeq(I); %直方图均衡化,这一个函数就可以做到均衡化的效果 figure, subplot(),imsh ...

    OpenCV成长之路(4):图像直方图

    一.图像直方图的概念 图像直方图是反映一个图像像素分布的统计表,其实横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的.纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比. 图 ...

    matlab图像类型转换以及uint8、double、im2double、im2uint8和mat2gray等说明

    转自:http://blog.csdn.net/fx677588/article/details/53301740 1. matlab图像保存说明 matlab中读取图片后保存的数据是uint8类型( ...

    Matlab图像彩色转灰色

    Matlab图像彩色转灰色 时间:2014年5月7日星期三 网上找的程序.实现图像彩色转灰色: I1=imread('C:\Users\Yano\Desktop\matlab\test1\4.jpg' ...

    OpenCV成长之路:图像直方图

    http://ronny.blog.51cto.com/8801997/1394115 2014-04-11 13:47:27 标签:opencv 直方图 统计表 原创作品,允许转载,转载时请务必以超 ...

    Python实现图像直方图均衡化算法

    title: "Python实现图像直方图均衡化算法" date: 2018-06-12T17:10:48+08:00 tags: [""] categorie ...

    随机推荐

    事件EVENT与waitforsingleobject的使用

    事件event与waitforsingleobject的配合使用,能够解决很多同步问题,也可以在数据达到某个状态时启动另一个线程的执行,如报警. event的几个函数: 1.CreateEvent和O ...

    关于IE8兼容svg图片问题解决

    参考 http://www.zhangxinxu.com/wordpress/2013/09/svg-fallbacks/ 对博主表示感谢,详述请参考上述链接 直接把代码复制过来了,备份记录下 &lt ...

    【POJ2949】Word Rings(最大平均值环)

    题意:给定N个字符串,如果A串的最后两个字母跟B串的前两个字母相同它们就能连接. 求一个由字符串组成的首尾相连的环,使(字符串总长度/字符串个数)最大. n<=100000 len<=10 ...

    C&plus;&plus;中数组求偏移量计算公式

    已知数组:type A[10][5]A[0][0] --A[8][4]面试常考:数组定义A[0....x][0...y]已知A[m][n] --求A[k][l]的地址:    &A[m][n] ...

    Swift互用性:与 Cocoa 数据类型共舞(Swift 2&period;0版)-b

    本节内容包括: 字符串(Strings) 数值(Numbers) 集合类(Collection Classes) 错误(Errors) Foundation数据类型(Foundation Data T ...

    通过logstash-input-mongodb插件将mongodb数据导入ElasticSearch

    目的很简单,就是将mongodb数据导入es建立相应索引.数据是从特定的网站扒下来,然后进行二次处理,也就是数据去重.清洗,接着再保存到mongodb里,那么如何将数据搞到ElasticSearch中 ...

    pyhton之Reportlab模块

    reportlab模块是用python语言生成pdf文件的模块 安装:pip install reportlab 模块默认不支持中文,如果使用中文需要注册 1.注册中文字体 下载自己需要的.ttf字体 ...

    &period;Net Core实现记录接口执行时间的中间件

    项目中有时接口访问时间过长,但是通过浏览器F12查看时,接口访问时间很正常,所以就很奇怪,于是写一个中间件,记录所有接口访问时间的中间件. 一.中间件 中间件是应用程序处理管道中的组件,用来处理请求和 ...

    Spring MVC 异步测试

    从spring3.2开始,支持servlet3的异步请求,这对于处理耗时的请求如缓慢的数据库查询是非常有好处的,不至于很快的耗光servlet的线程池,影响可扩展性. 让我们先来了解一下servlet ...

    展开全文
  • 用matlab显示图像直方图.pdf
  • """对一幅灰度图像进行直方图均衡化""" #计算图像直方图 #在numpy中,也提供了一个计算直方图的函数histogram(),第一个返回的是直方图的统计量,第二个为每个bins的中间值 imhist,bins = histogram(im.flatten...
  • 本文介绍了直方图概念及属性、图像直方图的概念、特点及应用。

    ☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython

    一、引言

    在前面几篇直方图相关的文章中介绍了直方图均衡、直方图匹配、局部直方图处理、基于直方图统计信息进行图像增强处理等图像处理与直方图相关的内容,具体相关内容请参考《《数字图像处理》第三章学习总结感悟2:直方图处理》,但一些直方图的基础知识没有介绍,本来觉得是很简单的知识,不用单独说明,但在直方图计算及处理应用时,发现一些基础概念还是要对齐一下,因此在此补充说明一下直方图的基础知识。

    二、通用直方图概念及属性

    直方图是一种常用的数据统计图。对某一物理或特征量不同取值,找出它的最大值和最小值,然后确定一个区间,使其包含全部测量数据,将区间分成若干小区间,统计测量结果出现在各小区间的频数或占比,以测量数据为横坐标,以频数或占比为纵坐标,划出各小区间及其对应的频数或占比高度,则可得到一个矩形图,即统计直方图。

    直方图中分成的若干小区间数量称为组数,用bins表示,其中每组两个端点的横坐标差称为组距。直方图所表征数据的最小和最大值的区间称为直方图的值的范围(range)。

    如果所有组的组距相同的直方图称为均匀直方图(uniform histogram),否则称为非均匀直方图

    基于一个物理量或物体特征值建立的直方图为一维直方图,事实上也可以基于多个物理量或特征值来建立多维直方图,如人口数据中基于年龄+受教育年数来建立人口数量分布直方图就是二维直方图。物理量或特征量的个数称为直方图的维数,用dims表述。

    下面两图是二维直方图:
    在这里插入图片描述
    在这里插入图片描述

    三、图像直方图

    在图像处理中,以图像具体通道的像素值的数据构成的集合值作为直方图的横坐标,每个值出现的数量或比例作为纵坐标,所得的直方图就是图像直方图(Image Histogram)。

    其实不只基于图像像素值建立直方图,也可以对图像梯度、每个像素的角度等一切图像的属性值都可以建立直方图。但在图像处理中基于图像像素值的直方图是最常见的。一般图像直方图都是一维直方图。

    • 图像直方图具有平移、旋转和缩放不变性的特点。对于平移图像,旋转图像角度的情况下,图像操作前后的直方图分布不变,对于缩放图像,前后直方图的分布也基本不变
    • 可以通过图像对应的直方图来判断一张图像是否偏暗、偏亮或者光线正常,图像直方图的横坐标的左侧为纯黑、较暗的区域,而右侧为较亮、纯白的区域。因此一张较暗图片的直方图中的数据多集中于左侧和中间部分,而整体明亮、只有少量阴影的图像则相反。如下图:
      在这里插入图片描述

    四、小结

    本文介绍了直方图概念及属性、图像直方图的概念、特点及应用。

    更多图像直方图处理的内容请参考《《数字图像处理》第三章学习总结感悟2:直方图处理》的介绍。

    更多图像处理请参考专栏OpenCV-Python图形图像处理》及《图像处理基础知识》的介绍。

    对于缺乏Python基础的同仁,可以通过老猿的免费专栏《 专栏:Python基础教程目录》从零开始学习Python。

    如对文章内容存在疑问或需要相关资料,可在博客评论区留言,或关注:老猿Python 微信公号发消息咨询,可通过扫二维码加微信公众号。
    在这里插入图片描述

    写博不易,敬请支持:

    如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

    关于老猿的付费专栏

    1. 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
    2. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
    3. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录
    4. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。

    前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。

    对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。

    如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

    老猿Python,跟老猿学Python!

    ☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython

    展开全文
  • 这是基于CCS数字图像直方图均衡化处理,对图像的增加化有很大的效果
  • 等面积二元子图像直方图均衡化 MATLAB 代码 ,运行通过,可以学习借鉴
  • 本文实例为大家分享了Python OpenCV图像直方图和反向投影的具体代码,供大家参考,具体内容如下 当我们想比较两张图片相似度的时候,可以使用这一节提到的技术 直方图对比 反向投影 关于这两种技术的原理可以参考我...
  • 函数可以对彩色图像进行直方图均衡,它以多维图像作为输入,并以多维形式生成输出。
  • 等面积二元子图像直方图均衡 英文文章,名称为image enhancement based on equal area dualistic sub-image
  • 利用matlab编写的直方图均衡化和直方图匹配的函数
  • (武汉大学数字图像处理实习1)直方图统计,统计大小为256*256的图像文件Lena.raw各灰度值像素数以及占比并输出至count.txt中
  • 可以找到对比度差的图像直方图
  • 图像处理之图像直方图

    千次阅读 2021-09-10 13:45:00
    图像处理之图像直方图 什么是图像灰度直方图?什么是直方图均衡化?什么是直方图规定化? 灰度直方图:从数学上来说,图像直方图是描述图像的各个灰度级的统计特性,它是图像灰度值的函数,统计图像中各个灰度级...
  • OpenCV图像灰度直方图

    2019-11-01 10:04:01
    OpenCV计算图像灰度直方图,绘制图像灰度直方图灰度分布。
  • 问题1:提取RGB三个通道图像,计算其平均直方图结果,然后再进行均衡化; 问题2:RGB空间转为HSI空间图像,对I(亮度,Intensity)通道进行直方图均衡化,再转为RGB图像

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,290
精华内容 26,116
关键字:

图像直方图

友情链接: JSP_POX_GA _upload.zip