matlab 16位直方图均衡化,matlab 直方图均衡化

matlab 16位直方图均衡化,matlab 直方图均衡化原理:直方图均衡化首先是一种灰度级变换的方法:原来的灰度范围[r0,rk]变换到[s0,sk]变换函数为:s=T(r);为便于实现,可以用查找表(look-uptable)的方式存储,即:原始的灰度作为查找表的索引,表中的内容是新的灰度值。其次,直方图均衡化是图像增强的一种基本方法,可提高图像的对比度,即:将较窄的图像灰度范围以一定规则拉伸至较大(整个灰度级范围内)的范围。目的是在得到在整个灰度…

原理:

直方图均衡化首先是一种灰度级变换的方法:

原来的灰度范围[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(‘均衡化后的图像’);

subplot(,,);imhist(I_HE);

title(‘均衡化后图像直方图’);

结果:

6fa7182cfdc952d44ca76bccf464805f.png

问题

直方图确实拉伸了,人眼视觉上对比度也提升了,可是说好的均匀分布呢?

matlab 直方图均衡化(含rgb)

步骤: 统计原图像素每个像素的个数 统计原图像

彩色图像的直方图均衡化matlab代码

彩色图像的直方图均衡化 – YangYudong2014的专栏 – CSDN博客 http://blog.csdn.net/yangyudong2014/article/details/4051503 …

直方图均衡化与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,索引的定义: 索引是为了加速对表中数据行的检索而创建的一种分散存储的( …

今天的文章matlab 16位直方图均衡化,matlab 直方图均衡化分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/12308.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注