精华内容
下载资源
问答
  • 具体来说,直方图描述的是图像具有各灰度级的出现的概率(像素的个数),其横坐标为灰度级,纵坐标为图像具有该灰度级的像素个数。由于灰度级的大小为0-255,故横坐标的数值范围为0-255.其语法格式为:...

    1.什么是直方图?

    直方图是数字图像处理中一个简单而重要的常用工具,它从总体上刻画了一幅图像的灰度内容。

    具体来说,直方图描述的是图像中具有各灰度级的出现的概率(像素的个数),其横坐标为灰度级,纵坐标为图像中具有该灰度级的像素个数。由于灰度级的大小为0-255,故横坐标的数值范围为0-255.

    其语法格式为:

    J=histeq(I,hgram);

    J=histeq(I,n);

    [J,T]=histeq(I);

    注:hgram为归一化(各元素均在[0,1]上)的灰度直方图。

    [J,T]=histeq(I);返回图像J的同时也返回变换向量。

    2.直方图的基本数学原理

    直方图均衡化方法可以产生一幅灰度级分布概率均匀的图像。以概率论中的概率密度和分布函数为基础,在这里我们举例来理解直方图的概念。

    比如有如下图像矩阵数据

    代表着数值为4的个数有5个,数值为6的个数有6个,数值为8的个数有4个,数值为10的个数有5个

    则直方图为

    真实的直方图是灰度级是从0-255的,上图应该讲灰度级为0的也标注出来才是正确的。

    原图中,灰度级为6的大小为6,直方图均衡化之后,灰度级为6的大小为20*(0.25+0.55)=14.

    通过上述原理,我们不难发现,概率密度表示对应的某一灰度级数在图片中出现的概率,某一灰度级数的分布函数值则表示小于等于该灰度级数的所有灰度值在图片中所占概率。(概率论课本上的)

    正如前文所述,直方图均衡化作用在于将原始直方图变为更均匀分布的图片。因此,基于上述数学原理,我们便可在此基础上推出直方图均衡化的实现原理:

    用分布函数代替概率密度函数,实现熵最大化。


    自制函数为:

    f=imread('tire.tif');

    [m,n]=size(f);
    f1=im2uint8(ones(m,n));

    h=imhist(f);
    I=length(h);

    %概率密度
    fx=h/numel(f);

    %分布函数
    FX=cumsum(fx);

    %获得均衡化之后的灰度直方图
    j=FX.*256;
    J=round(j);%由于灰度级为1-256之间的整数,
    %故需对拓展之后的灰度灰度级数取整才有意义。

    %将拓展后的的灰度级数对应映射到图片中。

    %由于灰度级数为1-256之间的整数,故需对扩展之后的灰度级数取整才有意义,
    %得到的J矩阵为1X256大小,表示扩展之前的灰度级数,其中每个级数对应   %元素的值为该灰度级数扩展后的灰度级数值。如J(2)=24,表示原始灰%%%%度 直方 图 为2灰度值
    %的地方经灰度扩展后其灰度值为24
    for  i=1:I  %I=256
        old=find(J==i); %找出扩展后的级数对应的扩展前的级数
        L=length(old);
        for k=1:L %m每一个n*n的
             oldlocation=find(f==(old(k)-1));%找到拓展前的灰度级数对应的像素点
            f1(oldlocation)=i;
        end
    end
    subplot(1,2,1),imhist(f1)

    subplot(1,2,2),imshow(f1);

    在这我们以tire.tif这张图片作为例子

    如果用MATLAB自带的函数实现,如下:

    x=imread('tire.tif');

    y=histeq(x);

    subplot(2,2,1),imhist(x);

    subplot(2,2,2),imhist(y);

    subplot(2,2,3),imshow(x);

    subplot(2,2,4),imshow(y);

    结果如图:

    再用我以直方图均衡化为原理自制的函数运行,结果如下图

    可以发现均衡化之后的图片与原图几乎一致,但是所呈现的直方图,在灰度级150之后均衡效果很差,需要改善。






    展开全文
  • MATLAB——histeq函数

    万次阅读 2014-09-20 16:14:06
    功能:直方图均衡化。...hgram的各元素的值域为[0,1]。  J = histeq(I,n) 指定直方图均衡后的灰度级数n,默认值为64。  [J,T] = histeq(I,...) 返回从能将图像I的灰度直方图变换成图像J的直方图变换T。
    功能:
    直方图均衡化。
    
    用法:
           J = histeq(I,hgram)  将原始图像I的直方图变成用户指定的向量hgram。hgram中的各元素的值域为[0,1]。
           J = histeq(I,n)  指定直方图均衡后的灰度级数n,默认值为64。
           [J,T] = histeq(I,...)  返回从能将图像I的灰度直方图变换成图像J的直方图变换T。

           newmap = histeq(X,map,hgram)
           newmap = histeq(X,map)
           [newmap,T] = histeq(X,...)  
           这三个是针对索引图像调色板的直方图均衡化,用法和灰度图像的一样。
    举例:
           I = imread('tire.tif');
           J = histeq(I);
           imshow(I)

           figure, imshow(J)


    转自 http://ilovematlab.cn/thread-1499-1-1.html

    展开全文
  • matlab histeq函数介绍

    万次阅读 2015-06-02 23:32:16
    Histeq ...该函数通过直方图均衡化来增加对比度 Syntax J = histeq(I,hgram) Description histeq enhances the contrast of images by transforming the values in an intensity im

    Histeq

           Enhance contrast using histogram equalization

           该函数通过直方图均衡化来增加对比度

    Syntax

          J = histeq(I,hgram)

    Description

          Histeq enhances the contrast of images by transforming the values in an intensity image, or the values in the colormap of an indexed image, so that the histogram of  the output image approximately matches a specified histogram.

          Histeq函数通过改变一副亮度图像灰度值或者一副索引图像的灰度值来增加图像的对比度,以达到输出图像的直方图近似于规定的直方图。

          J = histeq(I,hgram) transforms the intensity image I so that the histogram of the output intensity image J with length(hgram) bins approximately matches hgram. The

    vector hgram should contain integer counts for equally spaced bins with intensity values in the appropriate range: [0, 1] for images of class double, [0, 255] for images

    of class uint8, and [0, 65535] for images of class uint16. histeq automatically scales hgram so that sum(hgram) = prod(size(I)). The histogram of J will better match

    hgram when length(hgram) is much smaller than the number of discrete levels in I.

        J = histeq(I,hgram)改变灰度图像以达到输出图像J的直方图接近于参数hgram(该参数为规定直方图)。向量hgram应该包含等区间的适当灰度值的数目(就是灰度区间,比如uint8图像,将256个灰度级化为32个区间,每个区间连续8个灰度级),灰度值的范围为:双精度图像灰度值范围为[0-1],unit8图像灰度值范围为[0-255],unit16图像的灰度值范围为[0-65535],histeq自动调整hgram以达到标准图像hgram的和等于原图像的像素数(也就是说两幅图像的像素数要相等,即将标准图像的像素数目调整的和原图像像素数目一样),当规定直方图J的长度比原图像I的灰度级数目小时,J的直方图将会更好的匹配规定直方图hgram

           翻译的很烂,以后还需多多努力,虽然很多东西能够意会但是还是难以表达。

    展开全文
  • 原理 假设灰度级为归一化至范围[0,1]内的连续量,并令 pr(r)p_r(r)pr​(r)表示给定图像灰度级的概率密度函数。对输入灰度级执行如下操作,得到输出灰度级S: S=T(r)=∫0rpr(w)dw S = T(r) = \int_0^rp_r(w)dw S=T...

    直方图均衡化
    均衡化处理的目的是得到比原图具有更高对比度的扩展了动态范围的图像。

    原理
    假设灰度级为归一化至范围[0,1]内的连续量,并令 p r ( r ) p_r(r) pr(r)表示给定图像中灰度级的概率密度函数。对输入灰度级执行如下操作,得到输出灰度级S:
    S = T ( r ) = ∫ 0 r p r ( w ) d w S = T(r) = \int_0^rp_r(w)dw S=T(r)=0rpr(w)dw
    得到的输出灰度级的概率密度函数是均匀的。

    也就是通过对给定图像的灰度级概率密度函数进行一个积分处理,得到新的输出灰度级。通过这种变换得到的新图像灰度级在范围[0,1]比较均衡化。

    histeq
    函数histeq可以实现直方图的均衡化。

    调用格式
    J = histeq(I,hgram)
    对灰度图像I进行变换,使得输出灰度图像J的直方图与目标直方图hgram近似匹配。

    J = histeq(I,n)
    变换灰度图像I,在J中返回具有n个离散灰度级的灰度图像。大致相等的像素数被映射到J中的n个级别中的每一个,使得J的直方图近似平坦。当n远小于I中的离散层数时,J的直方图更平坦。

    使用示例

    I = imread('figure1.jpg');
    J = histeq(I);
    imshowpair(I,J,'montage')
    

    得到原图与均衡后的图片如下所示:
    在这里插入图片描述
    可见,经过均衡化后的图片,对比度明显增强。

    展开全文
  • MAT语法格式如下: b=histeq(a); b=histeq(a,n);%把图像a的灰度阶变为n阶
  • %histeq函数实现图片灰度直方图均衡化的原理 [m, n] = size(src); dst = ones(m, n); % 创建一个和原图像同等大小的矩阵 h = imhist(src); I = length(h); PDF = h/numel(src); %概率密度PDF和概率分布函数CDF CDF...
  • histeqMatlab中的一个工具箱函数。其调用格式为: f1 = histeq(f,n) [f1,T] = histeq(f,n) 其中,f为输入图像,n为指定直方图均衡化后的灰度级数(若n为向量,且长度小于等于f的灰度级数,则此时为直方图规定化...
  • matlab imhist与histeq函数

    千次阅读 2018-03-03 19:42:50
    参考: https://zhidao.baidu.com/question/506425784.html http://www.ilovematlab.cn/thread-1460-1-1.html ... imhist 该函数用于获取图像数据的灰度直方图。灰度直方...
  • matlab——imhist和histeq函数

    千次阅读 2020-02-21 20:27:05
    imhist函数 目的:获取图像的灰度直方图。 用法: imhist( img );直接显示图像img的灰度直方图; imhist(img,n);显示一个统计n个灰度级信息的直方图; [counts, x] = imhist( img ) ;获取直方图信息,x为灰度...
  • 2016-6-8日用C++也实现了直方图规定化,只是结果上和这篇博文的源码有差异,详情...所以,我就有必要在OpenCV下写一个图像直方图规定化处理的函数,以方便将来使用。 我在网上...
  • 直方图均衡化Matlab实现 步骤: 统计直方图 累计直方图 映射 close all clear all clc srcImage = imread('lena.jpg'); srcImage = rgb2gray(srcImage); grayImage = srcImage; [height,width] = size(grayImage)...
  • MATLAB中的直方图均衡库函数histeq和opencv 的库函数cvEqualizeHist 针对同一张图 得到结果不一样
  • matlab自定义函数(滤波器部分),dsp运用到的函数,,AFD_BUTT.M,AFD_CHB1.M,AFD_CHB2.M,AFD_ELIP.M,BLACKMAN.M,CAS2DIR.M,CASFILTR.M等等
  • 举例说明了各种matlab输入输出函数的使用方法
  • %histeq函数实现直方图的均衡化和规定化 clear,clc,close all; Image1 = rgb2gray(imread('baboon.jpg')); Hgram = imhist(Image1); Image2 = imread('pic01.bmp'); result1 = histeq(Image2); %直方图均衡化 result...
  • 下面是代码,没有用histeq均衡函数、概率密度等现成函数,纯手造,如果用的话只需要二十几行吧,给有需要的伙伴们参考。 %彩色图直方图匹配matlab clc clear all close all im = imread('d:\2.png'); im1=im(:,:,1);...
  • 直方图均衡化 histeq函数

    千次阅读 2019-09-25 22:55:09
    直方图均衡化主要用于增强灰度值动态范围偏小的图像的对比度。该方法的基本思想是把原始图像的灰度统计直方图变换成为均匀分布的形式,这样就增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果。...
  • Matlab直方图均衡化原理----histeq函数

    千次阅读 2018-08-25 16:41:17
    %找到图像等于某个灰度级所有像素点所在位置 H(P)=(CDF-MinCDF)/(M*N-MinCDF);%%利用灰度换算公式,修改所有位置上的像素值 end subplot(122);imshow(H) print(gcf,'-djpeg',['1.jpg']); % 保存为jpg格式...
  • 有没有人知道 MATALB的直方图均衡函数histeq和opencv的cvEqualizeHist()函数的区别,还有我把网上所以的直方图均衡函数都试了一遍 结果发现在opencv均衡化后的图像的平均值 要大于MATLAB中均衡化后的平均值 ...
  • histeq的原理和用法

    千次阅读 2018-06-19 21:14:57
    参考文档:Image Processing ...在matlab中,能达到这个目的的函数就是histeq.那么直方图均衡化的原理是什么呢?下面就主要讲解一下: histeq的原理: [MN]=size(H); [counts,x]=imhist(H);%H是读取的图像,i...
  • 假设灰度级为归一化至范围[0,1]内的连续量,并令pr(r)p_r(r)pr​(r)表示给定图像灰度级的概率密度函数。对输入灰度级执行如下操作,得到输出灰度级S: S=T(r)=∫0rpr(w)dw S = T(r) = \int_0^rp_r(w)dw S=T(r)=∫0...
  • Matlab图像处理函数大全(建议收藏)

    千次阅读 多人点赞 2020-12-11 20:32:01
    文章目录第1章: 图像显示与图像文件输入输出函数第2章: 图形绘制第3章: 图像类型和类型转换第4章: 图形用户界面工具第5章: 空间变换和图像配准第6章: 图像分析和统计第7章: 图像代数运算第8章: 图像增强第9...
  • 三、histeq的原理和用法

    万次阅读 多人点赞 2014-11-27 16:31:43
    本系列文章都是通过自己的学习经验,以及啃文档所写。如需转载,请注明出处 参考文档:Image Processing Toolbox™ 6 User’s Guide    作者:joy ...在matlab中,能达到这个目的的函数就是histeq.那么
  • matlab 直方图均衡化 histeq实现

    千次阅读 2020-03-23 15:40:38
    function img = histEq(img) % 输入图像灰度、rgb图像都可以 % 1 转灰度图像 2. 统计每一灰度级的数量 3. 累计灰度级 4. 归一化为累计概率 % 5. 当前灰度级的概率 P * 255 = 新映射的灰度级 [width,height,channels...
  • matlab图像处理常用函数大全

    万次阅读 多人点赞 2018-07-16 16:03:34
    显示索引图像和灰度图像>> [X,map]=imread('trees.tif');>> gmap=rgb2gray(map);&...利用膨胀函数平移图像I = imread('football.jpg');se = translate(strel(1), [...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,062
精华内容 424
关键字:

matlab中histeq函数

matlab 订阅