直方图均衡化(matlab)

对图像(灰度图)进行直方图均衡化主要有一下几个步骤:

1、计算各个灰度值(0-255)出现的次数

2、计算各个灰度值的累积分布率

2、根据累积分布率计算出原来各灰度值的均衡化之后的新的值

%直方图均衡化
clear;
I = imread(‘1.bmp‘);
[height,width] = size(I);
figure
subplot(221)
imshow(I)%显示原始图像
subplot(222)
imhist(I)%显示原始图像直方图  

%进行像素灰度统计;
s = zeros(1,256);%统计各灰度数目,共256个灰度级
for i = 1:height
    for j = 1: width
        s(I(i,j) + 1) = s(I(i,j) + 1) + 1;%对应灰度值像素点数量增加一
    end
end
%计算灰度分布密度
p = zeros(1,256);
for i = 1:256
    p(i) = s(i) / (height * width * 1.0);
end
%计算累计直方图分布
c = zeros(1,256);
c(1) = p(1);
for i = 2:256
        c(i) = c(i - 1) + p(i);
end
%累计分布取整,将其数值归一化为1~256
c = uint8(255 .* c + 0.5);
%对图像进行均衡化
for i = 1:height
    for j = 1: width
        I(i,j) = c(I(i,j)+1);
    end
end  

subplot(223)
imshow(I)%显示均衡化后的图像
subplot(224)
imhist(I)%显显示均衡化后的图像的直方图  
时间: 2024-12-28 00:21:15

直方图均衡化(matlab)的相关文章

matlab 直方图均衡化

原理: 直方图均衡化首先是一种灰度级变换的方法: 原来的灰度范围[r0,rk]变换到[s0,sk]变换函数为:s=T(r); 为便于实现,可以用查找表(look-up table)的方式存储,即:原始的灰度作为查找表的索引,表中的内容是新的灰度值. 其次,直方图均衡化是图像增强的一种基本方法,可提高图像的对比度,即:将较窄的图像灰度范围以一定规则拉伸至较大(整个灰度级范围内)的范围. 目的是在得到在整个灰度级范围内具有均匀分布的图像. 所以,当输入:直方图H(r)[此处指每个灰度级占有的像素数]

直方图均衡化的计算以及MATLAB实现

直方图均衡,这里不写公式,只看怎么算 一.手算直方图均衡 例如一个矩阵 \[源矩阵= \left[ \begin{matrix} 4&4&4&4&4&4&4&0\4&5&5&5&5&5&4&0\4&5&6&6&6&5&4&0\4&5&6&7&6&5&4&0\4&5&6&

基于matlab的直方图均衡化代码

2007-04-15 20:15 clear all %一,图像的预处理,读入彩***像将其灰度化 PS=imread('1.jpg');                 %读入JPG彩***像文件 imshow(PS)                                  %显示出来 title('输入的彩色JPG图像') imwrite(rgb2gray(PS),'PicSampleGray.bmp'); %将彩***片灰度化并保存 PS=rgb2gray(PS);      

直方图均衡化会造成灰度级的合并【伪轮廓】

均衡化处理后的图象只能是近似均匀分布.均衡化图象的动态范围扩大了,但其本质是扩大了量化间隔,而量化级别反而减少了, 因此,原来灰度不同的象素经处理后可能变的相同,形成了一片的相同灰度的区域,各区域之间有明显的边界,从而出现了伪轮廓. 如果原始图像对比度本来就很高,如果再均衡化则灰度调和,对比度降低.在泛白缓和的图像中,均衡化会合并一些象素灰度,从而增大对比度.均衡化后的图片如果再对其均衡化,则图像不会有任何变化. 灰度直方图均衡化的算法,简单地说,就是把直方图的每个灰度级进行归一化处理,求每种灰

图像处理------直方图均衡化

一.直方图均衡化数学推导 直方图均衡化的总体思想:首先考虑连续函数并且让变量r代表待增强图像的灰度级,假设被归一化到区间[0,1],且r=0表示黑色及r=1表示白色.然后再考虑一个离散公式并允许像素值在区间[0,L-1]内. 对于连续函数而言,假设其变换函数为 s=T(r),  0=<r<=1 在原始图像中,对于每一个像素值r产生一个灰度值s.其中,变换函数要满足以下条件: (1)T(r)在区间中为单值且单调递增.这是为了保证其逆函数的存在,并且输出图像从黑到白顺序增加: (2)当0=<

数字图像处理-----直方图均衡化

直方图均衡化(Histogram Equalization) 又称直方图平坦化,实质上是对图像进行非线性拉伸,重新分配图像象元值,使一定灰度范围内象元值的数量大致相等.这样,原来直方图中间的峰顶部分对比度得到增强,而两侧的谷底部分对比度降低,输出图像的直方图是一个较平的分段直方图:如果输出数据分段值较小的话,会产生粗略分类的视觉效果. 直方图是表示数字图像中每一灰度出现频率的统计关系.直方图能给出图像灰度范围.每个灰度的频度和灰度的分布.整幅图像的平均明暗和对比度等概貌性描述.灰度直方图是灰度级

彩色图像的直方图均衡化

彩色图像的直方图均衡化 - YangYudong2014的专栏 - CSDN博客 http://blog.csdn.net/yangyudong2014/article/details/40515035 matlab进阶摸索篇——彩色图直方图均衡化 - Rachel Zhang的专栏 - CSDN博客 http://blog.csdn.net/abcjennifer/article/details/6667504 用matlab_实现基于直方图均衡化的彩色图像增强 - 成人教育 - 道客巴巴 h

图像直方图均衡化

1. 直方图均衡化介绍 自我感觉书上讲的很清楚,直接把截图贴上了. 在进行直方图均值化的过程如下 读入图像对每个通道分别统计像素值[0,255]出现的次数.对每个通道分别求像素值[0,255]出现的概率,得到概率直方图.对每个通道分别求像素值[0,255]概率的前缀和,得到累计直方图.对每个通道根据累计直方图分别求像素映射函数.对每个通道完成每个像素点的映射.输出直方图均衡化的图像.2.代码(MATLAB) 1 %直方图均衡化 2 I = imread('D:/picture/girl.jpg'

python实现直方图均衡化,理想高通滤波与高斯低通滤波

写在前面 HIT大三上学期视听觉信号处理课程中视觉部分的实验二,经过和学长们实验的对比发现每一级实验要求都不一样,因此这里标明了是2019年秋季学期的视觉实验二. 由于时间紧张,代码没有进行任何优化,实验算法仅供参考. 实验要求 实现图像直方图均衡化,要求显示均衡化前.后直方图以及均衡化后图像. 对单通道图像进行DFT变换,要求显示幅度图和相位图,并设计理想高通滤波器和高斯低通滤波器对图像进行频域滤波,并显示滤波之后的图像. 注:除DFT和IDFT外,不允许调库 实验代码 代码首先贴在这里,仅供