直方图是多种空间域处理技术的基础。仿图操作能有效地用于图像增强,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。訪图在软件中易于计算,也适用于商用硬件设备,因此直方图成为实时图像处理的一个流行工具。

在MATLAB中,我们使用imhist函数来显示一-幅图像的直方图。

一.imhist函数

imhist函数多用于根据导入的图像绘制直方图,应用范围较广,其基本语法是:

h=imhist(f,b)

其中的f是输入的图像,h为其直方图,b是灰度级的个数。默认情况下,可直接写作:

imhist(f)

例如,导入一张图片,然后运行:

I=imread('hx.jpg');
imhist(I)

可以看到,我们这里已经绘制出了这幅图片的直方图。

二.直方图处理实践

题目:自定义一个函数,将输入图像(hx.jpg)进行直方图均衡化处理,该函数输入参数为处理前的图像,输出处理后的图像并显示处理过程中的灰度直方图。

1.读取图像并显示

I=imread('hx.jpg');   %读入图像
figure
subplot(2,3,1);     %在窗口中排列图像
imshow(I)     %X显示图像
title('原始图像');      %赋标题

2.转化为灰度图

J=rgb2gray(I);     %转化为灰度图
subplot(2,3,2);
imshow(J);
title('原图像灰度图');

3.绘制灰度直方图

subplot(2,3,3);
imhist(J);
title('灰度直方图');

4.直方图均衡化,这里用到了adapthisteq函数,adapthisteq函数使用限制对比度的自适应直方图均衡化 (CLAHE) 来变换值,从而增强灰度图像I的对比度[1]。

subplot(2,3,4);
H=adapthisteq(J);     %对灰度直方图均衡化处理
imhist(H);
title('直方图均衡化');

5.输出均衡化后的图像。

subplot(2,3,5);
imshow(H);
title('均衡化后的图像');

运行结果如图所示,可以看到我们处理的效果还是不错的。

另外直方图的均衡化可以通过一串源代码来实现,由于篇幅有限,我放到公众号了,编程实现的代码请到公众号回复 直方图均衡化 获取。

好了,今天的分享就到这里,关注我,每天更新matlab相关内容,获取更多知识可以关注下我们的公众号Asoul水云天课堂,也可以加qq群953314432,一个人学习也许会迷路,一群人学习绝不会孤单。

matlab title多个标题_MATLAB中的直方图处理及均衡化相关推荐

  1. matlab title多个标题_Matlab画图,只需要这几步

    不管是写论文,还是做方案,总需要数据图形作为支撑.今天,简单分享几个Matlab二维画图常用的命令,让你也可以画出漂亮的图形. 单坐标轴曲线绘制 绘图一般分为三步:数据准备.画图命令.增加修饰. 1. ...

  2. matlab获取全局变量的值_MATLAB中搜索、查询和全局变量的用法(摘录)

    1.MATLAB有几千个函数,而且很多函数有多种调用方式,怎样才能比较快的学习掌握? (1)熟练掌握MATLAB的在线帮助命令.MALTAB的各个函数,不管是内建函数.M文件函数.还是MEX文件函数等 ...

  3. matlab图像区域填充的原理_MATLAB中怎么用fill填充指定区域?

    展开全部 MATLAB 图像处理工具箱中提供了函数62616964757a686964616fe58685e5aeb931333365633864 roifill 用于对特定区域的填充,其语法格式为: ...

  4. matlab 倒数第二个位置_Matlab中在数据分析的使用

    一.数据分析简介: 1.数据的预处理-考虑离群值以及缺失值,并对数据进行平滑处理以便确定可能的模型: 2.数据的汇总-计算基本的统计信息以描述数据的总体位置.规模及形状: 3.数据的可视化-绘制数据以 ...

  5. matlab 倒数第二个位置_MATLAB中运行以下程序后倒数第二部分画图程序要怎么改??、、、...

    clearall;closeallFs=10000;T=1/Fs;%采样频率%调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号stN=1600%N为信号st的长度.Fs=10000 ...

  6. matlab插值与拟合例题_MATLAB中数据插值和数据拟合的用法

    一.数据插值: 插值是在一组已知数据点的范围内添加新数据点的技术.可以使用插值来填充缺失的数据.对现有数据进行平滑处理以及进行预测等.MATLAB 中的插值技术可分为适用于网格上的数据点和散点数据点. ...

  7. matlab如何新建mat文件_matlab中mat文件的生成和读取

    1.mat文件的生成 (1)直接在Matlab中创建并保存矩阵数据 打开Matlab软件,点击左上角文件(File),然后点击新建(new),选择变量(Variable),就新建了一个mat文件. 点 ...

  8. matlab用diag直接使用错误_matlab中的diag(diag(a))是什么意思?

    展开全部 取出62616964757a686964616fe4b893e5b19e31333365643533a阵的对角元,然后构建一个以a对角元为对角的对角矩阵. A = 1             ...

  9. matlab清空文件夹命令_matlab 中的删除文件

    Matlab中有两种删除文件的方式: 一种是删除文件     delete()函数      //可以使用help  delete命令查询delete()函数的使用方法 delete('p1.jpg' ...

最新文章

  1. python爬取网页书籍名称代码_python爬取亚马逊书籍信息代码分享
  2. abv asp是静态网页吗_2019年seo动态网页优化“指南针”
  3. SAP UI5 应用开发教程之二十九 - SAP UI5 的路由和导航功能介绍
  4. YBTOJ洛谷P4331:数字序列(左偏树)
  5. Exception Handling Application Block (5)详细解
  6. elixir 关键字列表
  7. 一篇文章看懂Java并发和线程安全
  8. Python开发技术详解PDF
  9. mysq 正序查询并且0排在最后
  10. 使用TinyPNG批量压缩图片
  11. CLion:使用CLion新建一个C语言项目
  12. PLSQL 的安装与简单使用
  13. 苏轼眼里看到的技术世界(一)
  14. haproxy配置timeout
  15. Taylor Swift - Enchanted_20131123141153-pdf
  16. 动态规划 机器人军团 POJ2533 中等
  17. android自定义网络请求框架,安卓快速开发框架(十九)XBaseAndroid Http网络请求
  18. 新个人所得税EXCEL计算公式以及税后工资反算税前工资公式
  19. 由前序序列与中序序列实现后序遍历
  20. elastic-job VS xxl-job

热门文章

  1. Java字节序,java整型数与网络字节序 byte[] 数组转换关系
  2. redis php方案,Redis三种部署方案图文详解
  3. c语言入门数组,C语言入门之数组(2)
  4. python后面空格报错_python中空格和table混用报错原因
  5. 一人之力也能抬起一辆大型箱车?
  6. 史上最冤!美国原子弹之父被骂了9年!最后他上台领奖,竟一把推开了总统.........
  7. 13个圆可以画什么?数学与艺术完美邂逅!原来数学也可以这么美
  8. 学校老师绝对不会教的方法,让你的孩子拥有一个开挂般的人生!
  9. 清华体质优良可降5分录取;窃取密钥者奖百万;阿里投入1亿保护方言;腾讯不正当竞争被罚;这就是今天的大新闻...
  10. 第jiu届蓝桥杯单片机省赛真题_第九届蓝桥杯单片机组省赛试题.pdf