如何用matlab对图像进行直方图均衡化?

如题所述

matlab全局直方图均衡化和局部直方图均衡化的优缺点如下:
如果一幅图像整体偏暗或者偏亮,那么直方图均衡化的方法很适用。但直方图均衡化是一种全局处理方式,它对处理的数据不加选择,可能会增加背景干扰信息的对比度并且降低有用信号的对比度(如果图像某些区域对比度很好,而另一些区域对比度不好,那采用直方图均衡化就不一定用)。此外,均衡化后图像的灰度级减少,某些细节将会消失;某些图像(如直方图有高峰),经过均衡化后对比度不自然的过分增强。针对直方图均衡化的缺点,已经有局部的直方图均衡化方法出现。
1.全局直方图均衡化,是先将图像各元素的个数进行统计,再求出各像素值的概率,并进行概率对应的归一化,将归一化的概率乘上灰度值,根据原像素值和归一化后的像素值对应,通过find函数找到原来相应的像素改变为现在归一化后的像素,得到均衡化处理的图像。
2.局部直方图均衡化,分为子块不重叠、子块重叠和子块部分重叠,函数中可选择不同的方法计算。子块不重叠算法根据输入分割子块的大小为n,将图像划分为多块n*n大小的子块,单独对每块进行直方图均衡化;子块重叠算法根据输入分割子块的大小n,利用该分割子块的直方图信息对子块中心的像素进行均衡化,逐一处理完该子块所有像素点;子块部分重叠算法子块是将移动步长约取为子块尺寸的几分之一,子块均衡的灰度值用于映射子块所有像素的灰度值,并记录对多次被均衡的像素,将均衡结果取平均作为该像素在输出图像中的灰度值。
温馨提示:内容为网友见解,仅供参考
无其他回答

MATLAB--数字图像处理 图像直方图均衡化
利用 MATLAB 中的 histeq()、adapthisteq() 函数,可以直接对灰度图像进行均衡化处理,实现像素值的非线性拉伸,以均匀分布于整幅图像中。图示展现均衡化效果,对比度明显提升。对于彩色图像的均衡化处理,通常通过分别对RGB三通道进行直方图均衡化后进行合成操作来完成。此方法使颜色更加丰富、鲜明。而另一...

Matlab图像处理系列——直方图均衡化和匹配(规定化)仿真
对于直方图均衡化,Matlab提供了histeq函数,可以实现图像的灰度级分布调整。而对于直方图匹配,同histeq函数一样,也可以使用该函数实现特定直方图的生成。这些源码为用户提供了实践与学习的工具,以便深入理解直方图均衡化和直方图匹配的原理与应用。

matlab如何实现矩阵图像的直方图均衡化
GP(k+1)=length(find(PS==k))\/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置 end figure,bar(0:255,GP,'g') %绘制直方图 title('原图像直方图')xlabel('灰度值')ylabel('出现概率')三,直方图均衡化 S1=zeros(1,256);for i=1:256 for j=1:i S1(i)=GP(j)+S1...

MATLAB数字图像处理(二)直方图
直方图均衡化通过调整灰度级,使得图像中每个灰度级的分布更为均匀。例如,假设图像的灰度级分布为:灰度级1\/4占50个像素,2\/4占50个像素,3\/4占100个像素,1占50个像素。经过直方图均衡化处理后,灰度级分布调整为:灰度级1\/4对应0.2,2\/4对应0.2,3\/4对应0.4,灰度级1对应0.6。通过MATLAB...

matlab histeq函数做直方图规定化
histeq(I, 64),就是希望均衡化后的直方图只有64个灰度级。假设原始图像为256级,共有X个像素,现希望均衡化为N个灰度级,过程如下:步骤1:计算原始图像I的累积函数A(g),其中g=[0,255]表示256个灰度级。A(0)就是灰度级为0的元素个数;A(1)就是灰度级为0和1的元素个数和;A(2)就是...

如何用matlab对图像进行直方图均衡化?
1.全局直方图均衡化,是先将图像各元素的个数进行统计,再求出各像素值的概率,并进行概率对应的归一化,将归一化的概率乘上灰度值,根据原像素值和归一化后的像素值对应,通过find函数找到原来相应的像素改变为现在归一化后的像素,得到均衡化处理的图像。2.局部直方图均衡化,分为子块不重叠、子块...

matlab中的histeq函数内部是怎样实现直方图均衡化的,求高人指点?自己按 ...
1、首先是图像的读入与double精度化。2、将图像对比度增大的图像、直方图和将其均衡化的图像、直方图。3、将图像对比度减小的图像、直方图和将其均衡化的图像、直方图。4、将图像线性增加亮度的图像、直方图和将其均衡化的图像、直方图。5、将图像线性减小亮度的图像、直方图和将其均衡化的图像、直方图。6...

MATLAB 图像处理
1.1 显示更加清楚可以用直方图均衡化。程序1:直方图均衡化,令对比度自适应直方图均衡化 I=imread('你的图片(注意要用英文的。比如'd:\\blood.jpg')');I=rgb2gray(I);J=adapthisteq(I);subplot(221),imshow(I)title('原图');subplot(222),imshow(J)title('直方图均衡化后的结果')subplot(223...

matlab里直方图均衡化用什么函数?
matlab直方图均衡化的函数只有一个histeq,它是用于图像处理的。histeq的作用是把“图像”的直方图均衡化。直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。这种方法通常用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图...

matlab做直方图均衡,下面的程序是局部直方图均衡,程序运行后的图像显...
数据类型问题,histeq函数,当你的图像是double型时,返回值是0或者1;当你的图像是uint8型时,返回值为0-255。所以你编的代码里的:k=histeq(m);%对块图进行直方图均衡,m为double型,所以其k就是全1,那么x2中对应的位置也就是全1,最后显示转化成uint8显示肯定为黑色。所以把k=histeq(m);...

相似回答
大家正在搜