基于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);                            %灰度化后的数据存入数组

%二,绘制直方图

[m,n]=size(PS);                             %测量图像尺寸参数

GP=zeros(1,256);                            %预创建存放灰度出现概率的向量

for k=0:255

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(i);                 %计算Sk

end

end

S2=round((S1*256)+0.5);                          %将Sk归到相近级的灰度

for i=1:256

GPeq(i)=sum(GP(find(S2==i)));           %计算现有每个灰度级出现的概率

end

figure,bar(0:255,GPeq,'b')                  %显示均衡化后的直方图

title('均衡化后的直方图')

xlabel('灰度值')

ylabel('出现概率')

%四,图像均衡化

PA=PS;

for i=0:255

PA(find(PS==i))=S2(i+1);                %将各个像素归一化后的灰度值赋给这个像素

end

figure,imshow(PA)                           %显示均衡化后的图像

title('均衡化后图像')

imwrite(PA,'PicEqual.bmp');

用imadjust函数

imadjust:调整图像的强度值或颜色用法形式:

J = imadjust(I)

J = imadjust(I,[low_in; high_in],[low_out; high_out])

J = imadjust(I,[low_in; high_in],[low_out; high_out],gamma)

newmap = imadjust(map,[low_in; high_in],[low_out; high_out],gamma)

RGB2 = imadjust(RGB1,...)

用法说明:

J = imadjust(I)将灰度图像I中的亮度值映射到J中的新值并使1%的数据是在低高强度和饱和,这增加了输出图像J的对比度值;

此用法相当于imadjust(I,stretchlim(I)).

J = imadjust(I,[low_in; high_in],[low_out; high_out])   将图像I中的亮度值映射到J中的新值,即将low_in至hige_in之间的值映射到low_out至high_out之间的值。low_in以下与high_in以上的值被剪切掉了,也就是说,low_in以下的值映射到low_out,high_in以上的值映射到high_out。它们都可以使用空的矩阵[],默认值是[0 1]。

J = imadjust(I,[low_in; high_in],[low_out; high_out],gamma) 将图像I中的亮度值映射到J中的新值,其中gamma指定描述值I和值J关系的曲线形状。如果gamma小于1,此映射偏重更高数值(明亮)输出,如果gamma大于1,此映射偏重更低数值(灰暗)输出,如果省略此参数,默认为1(线性映射).

newmap = imadjust(map,[low_in; high_in],[low_out; high_out],gamma)调整索引***像的调色板map。如果low_in, high_in, low_out, high_out和gamma都是标量,那么对r,g,b分量同时都做此映射。对于每个颜色分量都有唯一的映射,当low_in和high_in同时为1*3向量或者low_out 和 high_out 同时为1*3向量或者gamma为1*3向量时。调整后的颜色矩阵newmap 和map有相同的大小。

RGB2 = imadjust(RGB1,...) 对RGB图像RGB1的红、绿、蓝调色板分别进行调整。随着颜色矩阵的调整,每一个调色板都有唯一的映射值。

注意:如果high_out < low_out, 输出图像是颠倒的,像摄像底片.

举例:

调整低对比度灰度图像:

I = imread('pout.tif');

J = imadjust(I);

imshow(I), figure, imshow(J)

调整灰度图像,指定范围:

K = imadjust(I,[0.3 0.7],[]);figure, imshow(K)调整RGB图像

RGB1 = imread('football.jpg');RGB2 = imadjust(RGB1,[.2 .3 0; .6 .7 1],[]);imshow(RGB1), figure, imshow(RGB2)

直方图均衡化 matlab代码,基于matlab的直方图均衡化代码相关推荐

  1. Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别

    Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别 目录 车牌图像数据集 视频动态演示 核心代码 相关文章 Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别 Matl ...

  2. Matlab:基于Matlab实现人工智能算法应用的简介(SVM支撑向量机GA遗传算法PSO粒子群优化算法)、案例应用之详细攻略

    Matlab:基于Matlab实现人工智能算法应用的简介(SVM支撑向量机&GA遗传算法&PSO粒子群优化算法).案例应用之详细攻略 目录 1.SVM算法使用案例 1.1.Libsvm ...

  3. Matlab:基于Matlab实现人工智能算法应用的简介(BP神经网络算法NN、SOFM神经网络)、案例应用(基于Matlab的GUI的方式创建/训练/预测神经网络)之详细攻略

    Matlab:基于Matlab实现人工智能算法应用的简介(BP神经网络算法NN.SOFM神经网络).案例应用(基于Matlab的GUI的方式创建/训练/预测神经网络)之详细攻略 目录

  4. 直方图移位可逆水印MATLAB代码,基于图像插值和直方图平移的可逆水印算法

    第 33卷第 4期 2016年 4月 计 算 机 应 用 研 究 Application Research of Computers Vo1.33 No.4 Apr.2016 基于图像插值和直方图平移 ...

  5. 计算识别率的matlab代码,基于MATLAB神经网络图像识别的高识别率代码

    更新时间: 2019年3月14日10:50:04作者: 钱190 今天,我将与您分享一个基于MATLAB神经网络图像识别的高识别代码. 我认为内容非常好. 现在我与大家分享. 具有很好的参考价值. 需 ...

  6. matlab各种潮流计算代码,基于MATLAB的潮流计算源程序代码

    <基于MATLAB的潮流计算源程序代码>由会员分享,可在线阅读,更多相关<基于MATLAB的潮流计算源程序代码(7页珍藏版)>请在人人文库网上搜索. 1.*电力系统直角坐标系下 ...

  7. 用matlab仿真杨氏干涉代码,基于MATLAB杨氏干涉仿真实验

    基于MATLAB杨氏干涉仿真实验 张防震 朱亚琼 (河南财政税务高等专科学校 河南 郑州 450002) 摘 要: 利用MATLAB高性能的数值计算和可视化软件特点,对光学中的杨氏干涉实验进行仿真.单 ...

  8. 可行方向法的matlab代码,基于MATLAB的可行方向法求极值问题参考.doc

    基于MATLAB的可行方向法求极值问题参考 基于MATLAB可行方向法求极值的实现 姓名:xxx学号:xxx (北京理工大学机械与车辆学院车辆工程,北京 ) 摘要:在工程实际的优化设计中,随着设计变量 ...

  9. 码分多址matlab代码,基于matlab的码分多址系统仿真

    基于matlab的码分多址系统仿真 淮南师范学院电气信息工程学院 2010届电子信息工程专业课程设计报告 课程设计报告 题 目: 基于 Matlab 的 CDMA 多址技术的仿真 学生姓名: 学生学号 ...

最新文章

  1. 直播:AI时代,普通程序员该如何转人工智能(限免报名)
  2. 【 FPGA 】FIR滤波器开篇之传统抽头延迟线FIR滤波器实现介绍
  3. 蓝桥杯python青少年_蓝桥杯大赛青少年组省赛结果公布
  4. oracle 表空间的相关操作
  5. android 索引怎么使用情况,android 數據庫查詢中使用索引-大幅提高數據庫操作速度...
  6. 速途网范锋:我的创业路早已命中注定
  7. Unity,UDK,Unreal Engine4或者CryENGINE——我应该选择哪一个游戏引擎
  8. C语言中全局变量和局部变量,作用域与生命周期的相关问题。
  9. android应用自动打开网页,Android 使用Scheme实现从网页启动APP
  10. Java数组数字排列
  11. java tomcat 日志分析工具_设计一个Tomcat访问日志分析工具
  12. android 短信位置,浅析Android手机卫士之手机实现短信指令获取位置
  13. jquery php 登录验证手机号码,jQuery电话号码验证实例
  14. AttributeError: module 'socketio' has no attribute 'Server'
  15. 二维码怎么知道自己被扫描 ()==> java 篇 带一点点(Android)
  16. EasyCVR视频融合共享平台作为国标上级平台接入紫光华智云平台的流程解析
  17. 傲游研发中心在京成立
  18. Craig S. Wright问答系列(1)
  19. python导入自定义模块报attributeerror_Python脚本报错AttributeError: ‘module’ src has no attribute’xxx’解决方法...
  20. 《史上最全、最强Java学习路线知识点整理!!全是干货!!》

热门文章

  1. mysql 16g_问个 MySql 优化问题, 16G, 8 核服务器
  2. GitHub使用push不成功
  3. pg加密扩展的安装_服务器安装SG11扩展教程,宝塔安装微擎加密组件SourceGuardian loader...
  4. 关于RxBus的一些使用心得
  5. 爬虫框架scrapyd命令执行顺序
  6. 【积累】性能测试-响应时间的‘2-5-8’原则
  7. 爬虫入门实践之多线程爬虫
  8. linux 添加wifi网络打印机,基于WiFi无线网络的嵌入式打印终端的设计
  9. shell-trap-屏蔽信号锁定终端屏幕
  10. 来自程序媛的大数据分享(文中有彩蛋)