matlab16位直⽅图均衡化,matlab直⽅图均衡化
原理:
直⽅图均衡化⾸先是⼀种灰度级变换的⽅法:
原来的灰度范围[r0,rk]变换到[s0,sk]变换函数为:s=T(r);
为便于实现,可以⽤查表(look-up table)的⽅式存储,即:原始的灰度作为查表的索引,表中的内容是新的灰度值。
其次,直⽅图均衡化是图像增强的⼀种基本⽅法,可提⾼图像的对⽐度,即:将较窄的图像灰度范围以⼀定规则拉伸⾄较⼤(整个灰度级范围内)的范围。
⽬的是在得到在整个灰度级范围内具有均匀分布的图像。
所以,当输⼊:直⽅图H(r)【此处指每个灰度级占有的像素数】;灰度级范围[r0,rk];⽬的是到⼀个s=T(r)使得输出图像的直⽅图G(s)【同指】在整个灰度级范围内均匀分布。且需满⾜
(1)0—L(灰度范围)单调递增,避免⿊⽩颠倒;
(2)0
累积分布函数满⾜这⼏个要求。
\[\sum\limits_{i = 0}^k {G({s_i})}  = \sum\limits_{j = 0}^k {H({r_j})} \]
若图像有M*N个像素,则均衡化后的直⽅图G(q)就有均匀分布:
\[F = \frac{{NM}}{{{s_k} - {s_0}}}\]
代⼊上式:
\[NM\int\limits_{{s_0}}^s {\frac{1}{{{s_k} - {s_0}}}} ds = \frac{{NM(s - {s_0})}}{{{s_k} - {s_0}}} = \int\limits_{{r_0}}^r {H(r)}
dr\]
则:
\[s = T(r) = \frac{{{s_k} - {s_0}}}{{NM}}\int\limits_{{r_0}}^r {H(r)} dr + {s_0}\]
转换成离散形式:
\[s = T(r) = \frac{{{s_k} - {s_0}}}{{NM}}\sum\limits_{{r_0}}^r {H(r)}  + {s_0}\]
⼀般\[{s_k} = 255,{s_0} = 0\]
⾃此就得到了与r相应的s。
matlab代码:
[filename,pathname]=uigetfile('*.*','select an image');
input_I=imread([pathname filename]);%读⼊图像
subplot(,,);imshow(input_I);
title('原始图像');%显⽰原始图像
I_gray = rgb2gray(input_I);
subplot(,,);imshow(I_gray);
title('灰度图像');
subplot(,,);imhist(I_gray);
title('灰度图像直⽅图');%显⽰灰度图像及直⽅图
[height,width]=size(I_gray);
r=zeros(,);
for i=:height
for j=:width
r(I_gray(i,j)+)= r(I_gray(i,j)+)+;
end
end %计算灰度直⽅图中的数值:每个灰度级对应的像素数⽬。
subplot(,,);stem(r);
title('计算所得灰度图像直⽅图');
s=zeros(,);
s()=r();
for i=:
s(i)=s(i-)+r(i);
end %累积分布函数:对应的也是像素的数⽬。
subplot(,,);stem(s);
for i=:
s(i)=floor(*s(i)/(height*width));
end % s(i)/(height*width) 为频率,* 为归⼀到0—255之间,floor为取整(整数部分)函数。【round为四舍五⼊函数,ceil为取整数部分加1】
I_HE=I_gray;
for i=:height
for j=:width
I_HE(i,j)= s(I_gray(i,j)+);
end
end%得到均衡化后的图像。s()~s()⾥的数值即为灰度值,~256标号对应的是原始灰度图像的0~255的灰度值。
m=zeros(,);
for i=:height
for j=:width
m(I_HE(i,j)+)= m(I_HE(i,j)+)+;
end
end %计算直⽅图中的数值:每个灰度级对应的像素数⽬。
subplot(,,);stem(m);
title('计算所得均衡化后图像直⽅图');
imwrite(I_gray,'1gray.png');
imwrite(I_HE,'1he.png');
subplot(,,);imshow(I_HE);
title('均衡化后的图像');
matlab直方图
subplot(,,);imhist(I_HE);
title('均衡化后图像直⽅图');
结果:
问题
直⽅图确实拉伸了,⼈眼视觉上对⽐度也提升了,可是说好的均匀分布呢?
matlab 直⽅图均衡化(含rgb)
步骤: 统计原图像素每个像素的个数 统计原图像
彩⾊图像的直⽅图均衡化matlab代码
直⽅图均衡化与Matlab代码实现
昨天说了,今天要好好的来解释说明⼀下直⽅图均衡化.并且通过不调⽤histeq函数来实现直⽅图的均衡化. ⼀.直⽅图均衡化概述 直⽅图均衡化(Histogram Equalization) ⼜称直⽅图平 ...
图像处理 Matlab实现线性点运算、⾮线性点运算、点运算与直⽅图、直⽅图均衡化
今天,我们学习了直⽅图.于是乎,回来我就⽤matlab代码实现⼀下.昨天受到道路检测⽼师课上⼀个内容的影响(对于道路裂缝的检测,我突发奇想,如果对于道路图像进⾏操作,是否能够让裂缝与道路分离,使得图像 ...
Matlab实现直⽅图均衡化
G=imread('aini555.jpg'); I=rgb2gray(G); J=histeq(I); %直⽅图均衡化,这⼀个函数就可以做到均衡化的效果 figure, subplot(),imsh ...
直⽅图均衡化与直⽅图规定化的MATLAB实现
⽬录 1.直⽅图均衡化 2.直⽅图规定化 @ 1.直⽅图均衡化 对图像进⾏⾮线性拉伸,重新分配图像像元值,使⼀定灰度范围内像元值的数量⼤致相等就是直⽅图的均衡化.原来直⽅图中间的峰顶部分对⽐度得到增强 ...
MATLAB - 练习程序,直⽅图均衡化
直⽅图均衡化的作⽤是图像增强. 有两个问题⽐较难懂,⼀是为什么要选⽤累积分布函数,⼆是为什么使⽤累积分布函数处理后像素值会均匀分布. 第⼀个问题.均衡化过程中,必须要保证两个条件:①像素⽆论怎么映射, ...
图像增强算法(直⽅图均衡化、拉普拉斯、Log、伽马变换)
⼀.图像增强算法原理 图像增强算法常见于对图像的亮度.对⽐度.饱和度.⾊调等进⾏调节,增加其清晰度,减少噪点等.图像增强往往经过多个算法的组合,完成上述功能,⽐如图像去燥等同于低通滤波器,增加清晰度则 ...
对⽐度受限的⾃适应直⽅图均衡化(CLAHE)
直⽅图均衡化(HE)是⼀种很常⽤的直⽅图类⽅法,基本思想是通过图像的灰度分布直⽅图确定⼀条映射曲线,⽤来对图像进⾏灰度变换,以达到提⾼图像 对⽐度的⽬的.该映射曲线其实就是图像的累计分
布直⽅图(CDF ...
随机推荐
NOIP 考前 队列复习
BZOJ 1127 #include #include #include #include
SQL Server排序规则
在使⽤数据库的过程中,总会碰到⼀些特别的需求.有时候需要储存中⽂字符,区分⼤⼩写或者按照中⽂的⽐划顺序排序.这就涉及到了对数据库排列规则的选择. 我们⼀般可以选择数据库名称-->右键属性(Pro ...
使⽤SharedPreferences进⾏数据存储
使⽤SharedPreferences进⾏数据存储 很多时候我们开发的软件需要向⽤户提供软件参数设置功能,例如我们常⽤的QQ,⽤户可以设置是否允许陌⽣⼈添加⾃⼰为好友.对于软件配置参数的保存,如果是w ...
如何配置DNS服务器(局域⽹——域名指向某个IP地址)
单击“开始”,指向“管理⼯具”,然后单击“DNS”,打开 DNS 管理器.  如有必要,向管理单元添加适⽤的服务器,然后连接该服务器.在控制台树中,单击适⽤的 DNS 服务器.  在“操作”菜单上 ...
JavaScript、jQuery、HTML5、Node.js实例⼤全-读书笔记4
5.2.2 让瀑布流动起来 打好基建之后,就需要写JavaScript代码.⾸先如果数据不够显⽰⼀屏幕的情况,就⽤新数据来补⾜它,在补充的时候是根据4列中最矮的那⼀个为优先补充,因为⾼矮尺⼨⼀般只有在 ...
linux系统中.bashrc的妙⽤
⼀.有何作⽤ .bashrc - The individual per-interactive-shell startup file. .bashrc - 主要保存个⼈的个性化设置,如命令别名.路径等 ...
Oracle解析复杂json的⽅法
问题背景: 当前在Oracle数据库(11G之前的版本)解析json没有可以直接使⽤的系统⽅法,⽹上流传的PLSQL脚本⼤多也只可以解析结构较单⼀的json串,对于结构复杂的json串还⽆法解析.如此 ...
Java的基本程序设计结构【2】
注释 与⼤多数程序设计语⾔⼀样,Java 中的注释也不会出现在可执⾏程序中.因此,可以在源程序中根据需要添加任意多的注释,⽽不必担⼼可执⾏代码会膨胀.在Java 中,有三种书写注释的⽅式. 最常⽤的⽅ ...
pg数据库查询表⼤⼩
查询单个表 select pg_size_pretty(pg_relation_size('table_name')); 按size⼤⼩排序列出所有表 SELECT table_schema || ' ...
Mysql索引机制(B+Tree)
1,索引谁实现的: 索引是搜索引擎去实现的,在建⽴表的时候都会指定,搜索引擎是⼀种插拔式的,根据⾃⼰的选择去决定使⽤哪⼀个. 2,索引的定义: 索引是为了加速对表中数据⾏的检索⽽创建的⼀种分散存储的( ...

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。