图像处理

  • 前言
  • 1.查看图像文件信息
  • 2.显示图像
    • 2.1默认显示方式
    • 2.2添加颜色条
    • 2.3显示多帧图像
    • 2.4 显示动画
    • 2.5 三维材质图像
  • 3.图像的灰度变换
    • 3.1 图像的直方图
    • 3.2 灰度变换
    • 3.3 均衡直方图
  • 4.图像处理工具箱的应用
    • 4.1道路图像阈值分割问题
    • 4.2基于遗传神经网络的图像分割
  • 总结

前言

MATLAB图像处理工具箱提供了一套全方位的图形工具。可以进行图像增强、图像去模糊、特征检测等。


1.查看图像文件信息

在MATLAB中用户可以利用命令imfinfo就可以查看图像文件的信息。命令imfinfo的主要格式如下:
INFO = IMFINFO(FILENAME,FMT)
其中参数FILENAME 表示图像文件名称,FMT表示图像文件的格式。也可以直接使用命令imfinfo(filename)返回图像文件的信息,如文件名、格式、大小、宽度、高度等。

2.显示图像

在实际应用中,用户可能需要显示各种不同的图像效果。MATLAB的图像处理工具箱提供了多种常见的命令,下面将介绍几种常用的函数使用方法。

2.1默认显示方式

在MATLAB中,显示图像最常用的命令是imshow。在用户使用MATLAB的过程中,其实已经接触过其他显示图像的方法。但是,imshow相对于其他的图像命令,有下面几个特点:
自动设置图像的轴和标签属性。imshow程序代码会根据图像的特点,自动选择是否显示轴,或者是否显示标签属性。
自动设置是否显示图像的边框。程序代码会根据图像的属性,来自动选择是否显示图像的边框。
自动调用truesize代码程序,决定是否进行插值。
imshow命令的常见调用格式如下:
IMSHOW(X,MAP)显示图像X,使用MAP颜色矩阵。
H = IMSHOW(…)显示图像X,并将图像X的句柄返回给变量H

2.2添加颜色条

GUI可以给图像添加颜色条控件,从而通过颜色条来判断图像中的数据数值。在图像处理工具箱中,同样可以在图像中加入颜色条。

2.3显示多帧图像

对于多帧图像,常见的有下面几种显示方式:

  • 在一个窗体中显示所有帧。
  • 显示其中单独的某帧。

2.4 显示动画

从理论上讲,动画就是快速显示的多帧图像。在MATLAB中,可以使用movie命令来显示动画。movie命令从多帧图像中创建动画,但是这个命令只能处理索引图,如果处理的图像不是索引图,必须首先将图像格式转换为索引图。

2.5 三维材质图像

前面已经介绍过如何在MATLAB中显示二维图像,同样地,在MATLAB中也可以显示“三维”图像。这种三维图像是指在三维图的表面显示二维图像。所涉及的MATLAB命令是warp。warp函数的功能是显示材质图像,使用的技术是线性插值。其常用的命令格式如下:

3.图像的灰度变换

在常见的图像处理中,除了图像的几何外观变化之外,还可以修改图像的灰度。灰度变换是一种像素到像素的图像处理方法,也称为点处理(Block Operation)。
灰度变换完全由灰度变换函数GST确定,灰度变换函数GST描述了输入灰度值与输出灰度值之间的映射关系。

3.1 图像的直方图

在MATLAB中,可以对RGB图、灰度图和二值图进行灰度转换。同时,可以在MATLAB 中获取不同类型图像的直方图。其中,灰度图和二值图的直方图表示不同
在MATLAB 图像处理工具箱中,可以使用imhist函数得到灰度图、二值图或者索引图的直方图,其调用格式为:
imhist(I)
imhist(I,n)
imhist(X,map)
在以上调用格式中,参数I表示灰度图或二值图,n为直方图的柱数。X表示索引图,map为对应的Colormap。在调用格式imhist(I,n)中,当n未指定时,n根据I的不同类型取256(灰度图)或2(二值图)。下面用具体的例子来分析如何在MATLAB中分析图像的直方图信息。

3.2 灰度变换

在图像处理中,灰度变换的主要功能是改变图像的对比度。在MATLAB 图像处理工具箱中,实现该功能的函数是imadjust。对于灰度图,主要通过调整其对应的色图来实现;对RGB 图,灰度调整是通过对R、G、B三个通道的灰度级别调整实现。
函数imadjust的一般调用格式为:
J = imadjust(I)
J = imadjust(I,[low high],[bottom top])
J = imadjust(…,gamma)
newmap = imadjust(map, [low high],[bottom top],gamma)
RGB2 = imadjust(RGB1,…)
其中参数I、J表示灰度图,参数map、newmap 为索引图的色图,RGB1、RGB2 为RG图。

3.3 均衡直方图

均衡直方图是指根据图像的直方图自动给出灰度变换函数,使得调整后图像的直方图能尽可能地接近预先定义的直方图。在MATLAB中可以利用函数histeq对灰度图和索引图做直方图均衡。
histeq函数的调用格式如下:
J = histeq(I,hgram)
J = histeq(I,n)
J = histeq(I)
[J,T] = histeq(I,…)
newmap = histeq(X,map,hgram)
newmap = histeq(X,map)
[newmap,T] = histeq(X,…)

4.图像处理工具箱的应用

MATLAB是一种功能非常强大的数学工具软件,尤其是表现在对矩阵的运算以及绘制图像方面。MATLAB中有专门的用于图像分析的工具箱函数。利用这些函数,可以方便地对图像进行检测和分割。

4.1道路图像阈值分割问题

图像阈值分割是一种广泛应用的分割技术,利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取一个比较合理的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生相应的二值图像。
阈值分割法的特点是:适用于目标与背景灰度有较强对比的情况,重要的是背景或物体的灰度比较单一,而且总可以得到封闭且连通区域的边界。

4.2基于遗传神经网络的图像分割

遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
遗传算法与神经网络结合,可以用于图像分割,下面举例说明遗传神经网络应用于图像分割。


总结

以上就是今天学习的内容,加油!

【Matlab图像处理知识点合集】新手入门第二十一天相关推荐

  1. 【Matlab数理统计知识点合集】新手入门第十三天

    数理统计 学习目标 1.随机数的产生 1.1二项分布随机数 1.2 泊松分布随机数 1.3 均匀分布随机数 1.4 正态分布随机数 1.5 其他常见分布随机数 2.概率密度函数 2.1 常见分布的密度 ...

  2. 【Matlab优化知识点合集】新手入门第十二天

    MATLAB优化 学习目标 1. 常见优化问题 1.1无约束非线性优化 1.2有约束规划 1.3 目标规划 1.4 最大最小化问题 1.5 线性规划 1.6 二次规划 1.7多目标规划 1.8非线性方 ...

  3. 【Matlab程序设计知识点合集】新手入门第十五天

    MATLAB程序设计 前言 1.MATLAB的程序结构 1.1 if分支结构 1.2 switch分支结构 1.3 while循环结构 1.4 for循环结构 2.MATLAB的控制语句 2.1 co ...

  4. 【Matlab经典智能算法】新手入门第十六天

    经典智能算法 前言 1.免疫算法的MATLAB实现 1.1基本原理 1.2程序设计 1.3经典应用 2.小波分析算法的MATLAB实现 2.1基本原理 2.2程序设计 2.3经典应用 3.PID控制器 ...

  5. 【Matlab之Simulink基础】新手入门第十九天

    Simulink基础 学习目标 1.基本介绍 1.2 模块库介绍 1.3 Simulink仿真基本步骤 2.模块操作 2.1Simulink模块类型 2.2自动连接模块 2.3手动连接模块 2.4 设 ...

  6. 打开程序时固定位置_新手入门第五课:免费开源图像处理程序GIMP之矩形选择工具...

    GIMP是一款图像处理软件,是跟Photoshop同一类型的软件,为了方便介绍,后面每篇相关GIMP图像处理软件的介绍文章的开头,我都将插入一段文字,用于介绍GIMP是什么,让不熟悉的朋友知道这是干什 ...

  7. JVM面试知识点合集 — Android 春招 2022

    JVM面试知识点合集 - Android 春招 2022 星光不问赶路人,时间不负有心人 Tips:文章较长,可以在侧栏目点击子标题,快速跳转 喜欢的话,就一键三连吧

  8. 全国计算机二级office选择题知识点,全国计算机二级考试MS office选择题知识点合集(通用)...

    全国计算机二级考试MS office选择题知识点合集(通用) 计算机二级选择题考点总结 2014年计算机二级 office高级应用考试基础知识 计算机的发展.类型及其应用领域. 1.计算机 (comp ...

  9. matlab绿色版本合集

    网上找的matlab绿色版本合集链接https://pan.baidu.com/s/1gfDyIo7     密码:pxrs 转载于:https://www.cnblogs.com/babyfei/p ...

最新文章

  1. TPYBoard自制微信远程智能温湿度计
  2. 几十万实例线上系统的抖动问题定位
  3. 160 - 35 cupofcoffe.1
  4. springboot接收json参数_Springboot + Vue + shiro 实现前后端分离、权限控制
  5. LeetCode——maximal-rectangle
  6. yolo系列外文翻译_测评:英文文献、论文的翻译软件对比
  7. 实战JavaScript:实现像素鸟小游戏
  8. char 数组和 int 之间转化
  9. 8848Android 版本,【8848钛金手机M5评测】拍照配置保持Android阵容顶配堆积_8848 钛金手机M5_手机评测-中关村在线...
  10. KDD China技术峰会回顾:大牛云集,教你如何基于大数据 手握人工智能未来
  11. 数理统计 —— 总体、样本、统计量及其分布
  12. iar arm 6.4 破解
  13. 4家运营商、17家通信企业这样回应5G牌照发放
  14. 【解决】gnglia报错:Can‘t open PID file /usr/local/ganglia/var/run/gmetad.pid (yet?)
  15. Mac上安装VisualVM
  16. 上海之旅,再让键盘长几天草
  17. A-level Computer Science 计算机科学学习笔记/经验分享/教学 (1):考试流程和大纲
  18. uniapp 富文本编辑器
  19. html中的空格怎么写,html中空格代码是什么?(总结)
  20. 云扩RPA研习社 | 解析流程开发主要步骤

热门文章

  1. python 的 Thread.join方法
  2. 毕业设计 嵌入式 STM32自动泊车系统 - 智能小车 自动停车
  3. opencv-python教程学习系列8-opencv图像算术运算
  4. Dubbo的容错机制原理
  5. 一个绿色版本的LAMP包. (快速构建linux下的php开发环境)
  6. IDEA代码提示忽略大小写
  7. 用C++来设计开发的基于boost文档的站内搜索引擎项目,点赞收藏起来!
  8. VMware 虚拟机实现硬盘扩容自由 无需格式化
  9. nodejs获取与设置cookie
  10. 【ubuntu(Linux)安装Vs code并配置c++编译及cmake多文件编译】