精华内容
下载资源
问答
  • 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

    展开全文
  • %histeq函数实现图片灰度直方图均衡化的原理 [m, n] = size(src); dst = ones(m, n); % 创建一个和原图像同等大小的矩阵 h = imhist(src); I = length(h); PDF = h/numel(src); %概率密度PDF和概率分布函数CDF CDF...

    首先来看一下没有进行灰度直方图均衡化的图片和经过灰度直方图均衡化后的图片的对比:

    左为原图,右为经过灰度直方图均衡化处理后的图片,很显然,经过处理之后的图片在对比度方面有了显著的提升,下面附上两张图片的灰度直方图:

    左图为原图像的灰度直方图,右图为处理后的图片的灰度直方图。从灰度直方图上来看,二者有很大的不同,特别是在灰度值处于100-255范围内的直方图,但细细观察我们会发现,右图相较于左图,其实可以看做是左图直方图的扩展,即原图像的直方图范围可能是0-80,经过均衡化后,将其范围扩展到0-255,因此,图像灰度直方图均衡化处理的关键点就在于扩充,即找到原图中某个灰度级的点在处理后图片中的位置并映射过去,从而达到扩充的目的。下面附上matlab源码:

    function dst = my_histeq(src)
    %histeq函数实现图片灰度直方图均衡化的原理
    
    [m, n] = size(src);
    dst = ones(m, n);
    % 创建一个和原图像同等大小的矩阵
    h = imhist(src);
    I = length(h);
    
    PDF = h/numel(src);
    %概率密度PDF和概率分布函数CDF
    CDF = cumsum(PDF);
    
    j = CDF.*256;
    % 取整扩展,结果是均衡化之后的灰度直方图
    J = round(j);
    
    for y = 1:m
        for x = 1:n
            src_y_x = src(y, x);
            % 原图中该点的灰度值
            dst(y, x) = J(src_y_x + 1);
            % 找到原图中该点的灰度值在概率分布函数中的值
        end
    end

     

    展开全文
  • 具体来说,直方图描述的是图像具有各灰度级的出现的概率(像素的个数),其横坐标为灰度级,纵坐标为图像具有该灰度级的像素个数。由于灰度级的大小为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——imhist和histeq函数

    千次阅读 2020-02-21 20:27:05
    imhist函数 目的:获取图像的灰度直方图。 用法: imhist( img );直接显示图像img的灰度直方图; imhist(img,n);显示一个统计n个灰度级信息的直方图; [counts, x] = imhist( img ) ;获取直方图信息,x为灰度...

    imhist函数

    目的:获取图像的灰度直方图。
    用法:
    imhist( img );直接显示图像img的灰度直方图;
    imhist(img,n);显示一个统计n个灰度级信息的直方图,默认n为256;
    [counts, x] = imhist( img ) ;获取直方图信息,x为灰度级向量(一维),记录着图像中灰度的所有值,而counts也是一个向量(一维),里面记录着x中对应灰度值出现的个数。
    :imhist只能统计灰度图像的直方图,而对于RGB图像则需要分别统计每个通道的直方图。故使用imhist时,要将rgb图转换为灰度图。

    histeq函数

    目的:进行直方图均衡化
    用法:

    • J = histeq(I,hgram); 将原始图像I的直方图变成用户指定的向量hgram。hgram中的各元素的值域为[0,1]。
    • J = histeq(I,n); 指定直方图均衡后的灰度级数n,默认值为64,若n与L(输入图像的灰度级数)相等,则直接执行变换函数。若n<L,则函数试图分配灰度级,以便得到近似平坦的灰度图。
    • [J,T] = histeq(I,…); 返回从能将图像I的灰度直方图变换成图像J的直方图变换T。
      如:
      histeq(I, 128),就是均衡化后的直方图只有128个灰度级。
      :做RGB图像的直方图均衡化时,也需要将RGB图像转换为灰度图像。
    展开全文
  • 原理 假设灰度级为归一化至范围[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...
  • 有没有人知道 MATALB中的直方图均衡函数histeq和opencv中的cvEqualizeHist()函数的区别,还有我把网上所以的直方图均衡函数都试了一遍 结果发现在opencv中均衡化后的图像的平均值 要大于MATLAB中均衡化后的平均值 ...
  • matlab中图像增强函数的具体使用方法matlab中图像增强函数的具体使用方法如下:1直方图imhist函数用于数字图像的直方图显示,如:i=imread('e:\w01.tif');imhist(i);2直方图均化histeq函数用于数字图像的直方图均化...
  • histeqMatlab中的一个工具箱函数。其调用格式为: f1 = histeq(f,n) [f1,T] = histeq(f,n) 其中,f为输入图像,n为指定直方图均衡化后的灰度级数(若n为向量,且长度小于等于f的灰度级数,则此时为直方图规定化...
  • phpmatlab函数输出

    2016-10-16 02:00:31
    %I=histeq(I,255); %I=floor(I/8); maxi = max(I(:)) seuil = maxi-50 for k=1:size(I,1) for j=1:size(I,2) if(I(k,j)<seuil) I(k,j)=0; else I(k,j)=255; end end end [~, threshold] = edge(I, '...
  • 先描述一下问题:在Matlab中调用直方图均衡化函数histeq,但是出现了如下图情况: 为此我还help了一下: 心想histeq不是Matlab自带的函数吗,咋可能不存在,然后又看了一下自己的代码,没问题啊,上网找了一下.....
  • histeq():如果图像的对比度太差,常用的方法就是灰度直方图均衡化。 imhist():imhist是MATLAB图像处理模块的一个函数,用以提取图像的直方图信息。
  • histeq的原理和用法

    千次阅读 2018-06-19 21:14:57
    参考文档:Image Processing ...在matlab中,能达到这个目的的函数就是histeq.那么直方图均衡化的原理是什么呢?下面就主要讲解一下: histeq的原理: [MN]=size(H); [counts,x]=imhist(H);%H是读取的图像,i...
  • 三、histeq的原理和用法

    万次阅读 多人点赞 2014-11-27 16:31:43
    本系列文章都是通过自己的学习经验,以及啃文档所写。如需转载,请注明出处 参考文档:Image Processing Toolbox™ 6 User’s Guide    作者:joy ...在matlab中,能达到这个目的的函数就是histeq.那么
  • 16位图像matlab直方图均衡化前言8位图 histeq函数16位图 代码参考: 前言 如果,如果你要做的是8位图直方图均衡化,别看了。前方左转查查histeq怎么用,挺简单的,另我是个新手,不会用matlab,所以在这里记录下...
  • 文章目录1.直方图均衡化2.直方图规定化 1.直方图均衡化 对图像进行非线性拉伸,重新分配图像像元值,使一定灰度范围内像元值的数量大致相等就是...在MATLAB中histeq函数用于直方图的均衡化。 实现代码如下 clear...
  • MATLAB自适应直方图均衡—adapthisteq

    千次阅读 2020-02-09 17:32:22
    今天写调用摄像头处理图像函数,用到了adapthisteq函数,顺便...与histeq函数不同的是,adapthisteq处理的是图片的小块区域的数据,而不是整个图像对比度增强,使输出区域的直方图大约匹配指定的直方图。相邻的小块...
  • matlab-批处理图像

    2021-01-30 22:31:47
    matlab上批处理上百张.png图像,目的是将所有图片进行增强(如histeq直方图均衡),然后写入指定文件夹,图像名称不变。 思路: 用dir函数读所有图片的信息并生产一个结构组,dir详见matlab的help 利用name读取每...
  • 题目:数字图像处理—实验二一....学会用Matlab中的下列函数对输入图像进行上述2类运算;感受各种不同的直方图图像增强处理方法对最终图像效果的影响。Imhist;histeq;三.实验步骤:1.仔细阅读Ma...
  • image = imread(‘1.jpg’),在Matlab中,常用于读取图片的函数为imread()。 2. 转换为灰度图 读取的图片可能为彩色图片,也有可能是黑白的灰度图片。灰度图片可直接进行处理,彩色图片需要用rgb2gray()函数转换为...
  • 一.用法 灰度均衡化虽然能增大对比度、丰富灰度级数。但是为覆盖整个灰度区间的操作,且不受...在Matlab中没有直接实现灰度规定化的函数。但是我们可以通过imhist和histeq两个函数的结合使用来实现。示例程序如下:
  • 直方图均衡化是图像处理很重要的研究内容 ,它通过转换灰度图像亮度值或索引图像的颜色图值来增强图像对比度 图像的灰度统计直方图是 1个 1- D的离散函数. 2.直方图均衡化 直方图均衡化函数histeq( ) clear;x=...
  • matlab实现函数histeq,详见:http://www.ilovematlab.cn/thread-1499-1-1.html; 具体实现步骤:  首先计算图像各个像素值的出现的概率,然后计算累计概率,最后根据累计概率来计算最后的梯
  • 这个实验其实是这学期选的模式识别...Octave里面没有包含Matlab中那么多的内置函数,像源代码中用于直方图均衡化的histeq()就没有,所以之前运行的时候一直出现histeq undefined 的错误。  后来我就在网上搜
  • 然后改变嵌入的轮数及不同载体图像类别来分析算法的性能,再通过PSNR、RCE、REE、RMBE等客观指标来比较本课题所研究的算法同matlab中增强对比度的imadjust、histeq函数的效率和性能,并根据实际情况在此基础上再做...
  • 灰度直方图表示图像中具有某种灰度级的像素的个数,反应...matlab中有自带的函数来实现此功能,首先看看效果: I=rgb2gray(imread('pic.jpg')); J = histeq(I); subplot(1,2,1),imshow(I); subplot(1,2,2),imshow(J)...
  • 图像增强的实现

    2012-06-07 15:42:03
    Matlab 函数 fft、fft2 和 fftn 分别可以实现一维、二维和 N 维 DFT 算法;而函数 ifft、ifft2 和 ifftn 则用来计算反 DFT 。 这些函数的调用格式如下: A=fft(X,N,DIM) 其中,X 表示输入图像;N 表示采样间隔点...
  • 3.Matlab中函数: fft2; ifft2; fftshift; ifftshift; 三.实验要求: 请将实验用图像及源程序代码在网络教学平台上提交。 实验三:灰度修正技术和锐化技术 一.实验内容: 1.灰度变换:选择一副对比度不足的...

空空如也

空空如也

1 2
收藏数 29
精华内容 11
关键字:

matlab中histeq函数

matlab 订阅