严格一点来说,直方图均衡化和直方图规定化是不同的概念。histeq是用来做直方图均衡的。
hgram是均衡化后的灰度级个数。
比如histeq(I, 16),就是希望均衡化后的直方图只有16个灰度级;
histeq(I, 64),就是希望均衡化后的直方图只有64个灰度级。
假设原始图像为256级,共有X个像素,现希望均衡化为N个灰度级,过程如下:
步骤1:计算原始图像I的累积函数A(g),其中g=[0,255]表示256个灰度级。
A(0)就是灰度级为0的元素个数;
A(1)就是灰度级为0和1的元素个数和;
A(2)就是灰度级为0、1和2的元素个数和;
依次类推;
A(255)就是X,即原始图像的总的像素个数。
步骤2:计算原始直方图和均衡化后直方图的映射关系g->G,即将原始图像中的灰度值g变成新的灰度值G。
这里,G=NA(g)/X
步骤3:遍历原始图像I,依据步骤2中的映射关系,把所有像素点的灰度值变成新的灰度值,完毕。
你好,
matlab直方图均衡化的函数只有一个histeq,就是你说的那个。它是用于图像处理的。如果你的直方图不是图像处理的直方图,请给我短消息,我可以把算法给你。
histeq的作用是把“图像”的直方图均衡化。
简单的说,有些图像有太多的亮点或者有太多的暗点。histeq通过一个算法,把亮度重新分配,让人看得舒服自然。比如说原来的点都集中在暗处,1-25之间,histeq就可以把25亮度的点“拉”到255处,24“拉”到240处最后图像的细
J = histeq(I,hgram) 将原始图像I的直方图变成用户指定的向量hgram。hgram中的各元素的值域为[0,1]。[0,255][0,65535] 例如,lena的直方图执行语句 histeq(I)和histeq(I,[0,10,20,30,40,90,120,150,210,256]); 的区别:
用matlab实现图像的直方图均衡化
代码:
clear;
f=imread('c:/largejpg');
f=rgb2gray(f);
imshow(f);
figure,imhist(f);
ylim('auto');
g=histeq(f,256);
figure,imshow(g);
figure,imhist(g);
ylim('auto');
以上就是关于matlab histeq函数做直方图规定化全部的内容,包括:matlab histeq函数做直方图规定化、matlab里直方图均衡化用什么函数、MATLAB直方图均衡化函数histeq等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)