Matlab数字图像处理技术 最终版
非常全非常详细的MATLAB数字图像处理技术
MATLAB数字图像处理1 概述BW=dither(I)灰度转成二值图;X=dither(RGB,map)RGB转成灰度图,用户需要提供一个Colormap;[X,map]=gray2ind(I,n)灰度到索引;[X,map]=gray2ind(BW,n)二值图到索引,map可由gray(n)产生。
灰度图n 默认64,二值图默认2;X=graylice(I,n)灰度图到索引图,门限1/n,2/n,…,(n-1)/n,X=graylice(I,v)给定门限向量v;BW=im2bw(I,level)灰度图I到二值图;BW=im2bw(X,map,level)索引图X到二值图;level是阈值门限,超过像素为1,其余置0,level在[0,1]之间。
BW=im2bw(RGB,level)RGB到二值图;I=ind2gray(X,map)索引图到灰度图;RGB=ind2rgb(X,map)索引图到RGB;I=rgb2gray(RGB)RGB到灰度图。
2 图像运算2.1图像的读写MATLAB支持的图像格式有bmp,gif,ico,jpg,png,cur,pcx,xwd和tif。
读取(imread):[1]A=imread(filename,fmt)[2] [X,map]=imread(filename,fmt)[3] […]=imread(filename)[4] […]=imread(URL,…)说明:filename是图像文件名,如果不在搜索路径下应是图像的全路径,fmt是图像文件扩展名字符串。
前者可读入二值图、灰度图、彩图(主要是RGB);第二个读入索引图,map 为索引图对应的Colormap,即其相关联的颜色映射表,若不是索引图则map为空。
URL表示引自Internet URL中的图像。
写入(imwrite):[1] R=imwrite(A,filename,fmt);[2] R=imwrite(X,map,filename,fmt);[3] R=imwrite(…,filename);[4] R=imwrite(…,Param1,Val1,Param2,Val2)说明:针对第四个,该语句用于指定HDF,JPEG,PBM,PGM,PNG,PPM,TIFF等类型输出文件的不同参数。
MATLAB课程设计-图像处理完整版
M A T L A B课程设计-图像处理完整版-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIANMATLAB课程设计设计题目:应用图像处理班级:学号:姓名:指导老师:设计时间:2013年4月8号-4月14号摘要21世纪是一个充满信息的时代,图像作为人类感知世界的视觉基础,是人类获取信息、表达信息和传递信息的重要手段。
图像处理,是用计算机对图像进行分析,以达到所需结果的技术。
又称影像处理。
基本内容图像处理一般指数字图像处理。
数字图像是指用数字摄像机、扫描仪等设备经过采样和数字化得到的一个大的二维数组,该数组的元素称为像素,其值为一整数,称为灰度值。
图像处理技术的主要内容包括图像压缩,增强和复原,匹配、描述和识别3个部分。
常见的处理有图像数字化、图像编码、图像增强、图像复原、图像分割和图像分析等。
图像处理一般指数字图像处理。
所谓数字图像处理[7]就是利用计算机对图像信息进行加工以满足人的视觉心理或者应用需求的行为。
实质上是一段能够被计算机还原显示和输出为一幅图像的数字码。
关键词:DCT变换;图像压缩;真色彩增强;平滑;锐化;直方图均衡;灰度变换;滤波;M文件的使用目录摘要 (I)1 概述 (II)2 课程设计任务及要求 (III)2.1.1设计任务2.1.2设计要求3 系统设计原理 (Ⅳ)3.1 DCT图像压缩原理3.2 真彩色增强3.2.1平滑3.2.2锐化3.3 灰度变换(直方图均衡化)3.4 图像滤波3.4.1中值滤波器3.4.2维纳滤波器4 程序代码及实验结果与分析 (Ⅵ)4.1 DCT图像压缩4.1.1程序代码4.1.2实验结果4.1.3结果分析4.2 真彩色增强4.2.1平滑程序代码4.2.2实验结果4.2.3结果分析4.2.4锐化程序代码4.2.5实验结果4.2.6结果分析4.3 灰度变换(直方图均衡化)4.3.1程序代码4.3.2实验结果4.3.3结果分析4.4 图像滤波4.4.1程序代码4.4.2实验结果4.4.3结果分析5 收获体会 (Ⅶ)6 参考文献 (Ⅷ)概述MATLAB作为一种矩阵语言,进行数字图像处理是非常方便的。
MATLAB中的图像处理技术详解
MATLAB中的图像处理技术详解图像处理是一门涉及数字图像获取、处理、分析和展示的学科,其在各个领域都有重要的应用。
而MATLAB作为一种强大的科学计算软件,提供了丰富的图像处理工具包,可以帮助用户轻松地进行各种图像处理操作。
本文将详细介绍MATLAB中常用的图像处理技术,包括图像读取、图像显示、灰度转换、滤波操作、边缘检测以及图像分割等。
1. 图像读取和显示首先,在MATLAB中进行图像处理的第一步是读取图像。
MATLAB提供了imread函数,可以快速读取各类图像文件,例如JPEG、PNG、BMP等。
读取的图像可以是灰度图像,也可以是彩色图像。
读取之后,我们可以使用imshow函数将图像显示在MATLAB的图像窗口中,便于后续处理和分析。
2. 灰度转换在实际的图像处理应用中,有时候我们需要将彩色图像转换为灰度图像,以方便后续的处理和分析。
MATLAB提供了rgb2gray函数,可以将彩色图像转换为灰度图像。
转换后的灰度图像只包含一个通道,每个像素点的取值范围为0~255,表示灰度级。
3. 滤波操作滤波操作是在图像处理中常用的一种方法,其可以对图像进行平滑或者增强等处理。
MATLAB中提供了丰富的滤波函数,例如均值滤波、中值滤波、高斯滤波等。
这些滤波函数可以通过设置不同的参数来控制滤波效果,比如滤波窗口的大小、滤波核函数等。
4. 边缘检测边缘检测是图像处理中的一个重要任务,其可以帮助我们识别图像中的边缘信息,进而进行物体检测和分割。
MATLAB中提供了多种边缘检测算法,包括Sobel 算子、Canny算子等。
这些算法可以根据不同的应用场景选择合适的边缘检测方法,并根据需要调整相应的参数。
5. 图像分割图像分割是将图像分成若干个不同区域或者物体的过程,其在图像处理和计算机视觉中具有重要的意义。
MATLAB中提供了多种图像分割算法,例如基于阈值的分割、基于区域的分割以及基于边缘的分割等。
这些算法可以根据要求对图像进行有效的分割,以满足用户的实际需求。
MATLAB数字图像处理介绍
z
b
o
g
x1
1536
1
x
r
在图像(x1,y1)点的 RGB值是(r,g,b)
2048
y
上图是一个2048*1536大小的图像,其中这个三维矩阵的第一 维就是上图中第一层代表红色数值,第二维为第二层代表绿色 数值,第三维为第三层代表蓝色数值。也可以这样理解:将索 引图像中的数据矩阵中每一个像素点直接加载上色图矩阵中对 应的颜色值。
imshow函数显示灰度图像imshowi以下语句将显示一幅32个灰度级的图像iimshowi322使用明确指定的灰度级数目3某些情况下可能将一些超出数据惯例范围的数据显示为一幅灰度图像对于double型数组为01对于uint8型数组为0255为了将超过数据范围的数据显示为图像用户可以直接定义数据范围其调用格式如下imshowilowhigh如果用户使用一个空矩阵指定数据范围imshow将自动进行数据标度
…… …… …… m
. . . . . . . . . . . .
像素点 取值:[0,1] 或[0,255]
…… n m*n个像素,如1024*768
灰度图像读入matlab中是一个二维 的平面矩阵,其中行与列的乘积代 表其图片中像素点的个数。
3)二值图像:数据矩阵中的元素值只是0或1。读入matlab也是一 个二维矩阵。
注意:二值图像读入matlab中也是一 个二维的平面矩阵,但像素点取值只 限于0,1。
4)RGB图像:图像中每个象素的颜色用三个数据来存储,分别指 定红、绿、蓝三原色在象素颜色中的比例关系,组成一个三维数 组,读入matlab后是一个三维的矩阵。 注意:美术教科书中称红、黄、蓝为三原色,讲的是绘画颜 料的使用。一般电视光色等光色是红、绿、蓝。RGB图像就 是采用红、绿、蓝作为三原色的,其中R为红色,G为绿色, B为蓝色。
数字图像处理及matlab实现
THANKS
05 数字图像处理的应用案例
医学影像处理
1 2 3
医学影像诊断
数字图像处理技术可以用于医学影像的预处理、 增强、分割和识别,帮助医生更准确地诊断疾病。
医学图像重建
通过数字图像处理技术,可以从低质量的医学图 像中重建出高质量的图像,提高医学影像的清晰 度和诊断价值。
医学图像配准与融合
数字图像处理技术可以实现不同模态医学图像之 间的配准与融合,提供更全面的医学信息。
离散余弦变换
将图像从空间域转换到余弦函数构成的系数矩阵,用于数据压缩 和去噪。
Matlab中的图像恢复实现
超分辨率
通过多幅低分辨率图像合成一幅高分辨率图 像,提高图像的分辨率。
去噪
利用各种滤波技术去除图像中的噪声,恢复 原始图像。
失真校正
对由于拍摄、传输等原因造成的图像失真进 行校正,提高图像质量。
数字图像处理及 Matlab实现
目录
Contents
• 数字图像处理基础 • Matlab基础 • 数字图像处理技术 • Matlab在数字图像处理中的应用 • 数字图像处理的应用案例
01 数字图像处理基础
图像的数字化
总结词
将连续的图像转化为离散的像素点阵列。
详细描述
通过将连续的图像转化为离散的像素点阵列,数字图像处理能够将图像信息转 化为计算机能够处理的数字信息。每个像素点由其位置和灰度值表示,形成数 字图像。
图像的灰度级别
总结词
描述像素的亮度级别。
详细描述
图像的灰度级别决定了像素的亮度范围。灰度级别越高,图像的亮度范围越丰富, 细节表现力越强。常见的灰度级别有256级(0-255)和16级(0-15)。
(完整版)数字图像处理MATLAB程序【完整版】
第一部分数字图像处理实验一图像的点运算实验1.1 直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备1.PC机一台;2.软件matlab。
三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察图像matlab环境下的直方图分布。
(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码;2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
实验1.2 灰度均衡一.实验目的1.熟悉matlab图像处理工具箱中灰度均衡函数的使用;2.理解和掌握灰度均衡原理和实现方法;二.实验设备1.PC机一台;2.软件matlab;三.程序设计在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(2,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(2,2,3),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题a=histeq(I,256); %直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) %输出均衡化后图像title('均衡化后图像') %在均衡化后图像中加标题subplot(2,2,4),imhist(a) %输出均衡化后直方图title('均衡化后图像直方图') %在均衡化后直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
MATLAB的数字图像处理
摘要MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。
实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。
这一特点也就决定了MATLAB在处理数字图像上的独特优势。
理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。
二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。
本文通过一些简单的图像处理实例来阐述MATLAB处理数字图像的方便功能。
关键字:MATLAB、几何变换、灰度、降噪基于MATLAB的数字图像处理0引言众所周知,MATLAB在数值计算、数据处理、自动控制、图像、信号处理、神经网络、优化计算、模糊逻辑、小波分析等众多领域有着广泛的用途,特别是MATLAB的图像处理和分析工具箱支持索引图像、RGB图像、灰度图像、二进制图像,并能操作*.bmp、*.jpg、*.tif等多种图像格式文件。
如果能灵活地运用MATLAB提供的图像处理分析函数及工具箱,会大大简化具体的编程工作,充分体现在图像处理和分析中的优越性。
1 数字图象处理介绍1.1数字图像处理主要研究的内容数字图像处理主要研究的内容有以下几个方面:1) 图像变换由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。
因此,往往采用各种图像变换的方法,如傅立叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅立叶变换可在频域中进行数字滤波处理)。
目前新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。
2) 图像编码压缩图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量。
Matlab技术图像处理方法总结
Matlab技术图像处理方法总结图像处理是现代科学技术中不可或缺的一部分。
在各个领域,从医学影像到计算机视觉,图像处理技术的应用都十分广泛。
而Matlab作为一种强大的科学计算软件,提供了丰富的图像处理工具箱,为研究人员和工程师们提供了方便快捷的解决方案。
本文将总结一些常用的Matlab技术图像处理方法,探讨它们的原理和应用。
1. 图像预处理方法图像预处理是在进行进一步分析或处理之前,对图像进行必要的调整和增强的步骤。
其中,常见的预处理方法包括图像灰度转换、直方图均衡化和图像滤波等。
1.1 图像灰度转换图像灰度转换是将彩色图像转换为灰度图像的过程。
在Matlab中,可以使用`rgb2gray`函数将RGB图像转换为灰度图像。
这种转换可以简化图像处理的过程,使得处理灰度图像更加高效。
常见的应用包括图像增强、边缘检测和目标识别等。
1.2 直方图均衡化直方图均衡化是一种常用的图像增强方法,通过重新分布图像的像素值,增强图像的对比度和细节。
在Matlab中,可以使用`histeq`函数实现直方图均衡化。
该方法广泛应用于图像增强、特征提取和图像分割等领域。
1.3 图像滤波图像滤波是通过对图像进行滤波处理,降低噪声、增强图像细节或者平滑图像的过程。
在Matlab中,可利用各种滤波器进行图像滤波,如均值滤波、中值滤波和高斯滤波等。
滤波技术被广泛应用于图像降噪、边缘检测和特征提取等方面。
2. 图像分割方法图像分割是将图像划分为不同区域的过程,每个区域具有相似的特性。
常见的图像分割算法有基于阈值的方法、区域生长方法和边缘检测方法。
2.1 基于阈值的方法基于阈值的图像分割方法是一种简单而有效的图像分割方法,根据像素灰度值与预先设定的阈值进行比较,将图像分为不同的区域。
在Matlab中,可以使用`imbinarize`函数实现基于阈值的图像分割。
该方法常用于目标检测和图像分析等应用中。
2.2 区域生长方法区域生长方法是一种基于像素相似性的图像分割方法,通过从种子像素开始,将与其相邻的像素逐渐合并至同一区域。
MATLAB的数字图像处理
清晰度
绝对清晰度
● Resolution (分辨率)单位
视觉效果
dpi (display pixels / inch)
每英寸显示的线数(或像素)
● dpi的数值越大,图像越清晰
dpi
300 dpi
96 dpi
21 dpi
4
不同分辨率下的图像:
●图像分辨 率通常是以 像素数来计 量的,如: 640×480 , 640为水平 像素数, 480为垂直 像素数。
5图像由基本显示单元像点构成二进制位与图像之间像点由若干个二进制位进行描述二进制位代表图像颜色的数量位图图像像点8bit288256色色16bit21665536色色24bit22416m色色88位图像16位图像24位图像存在严格的位映射关系具有位映射关系的图叫作位图位图特指图像6像素像素是图片大小的基本单位图像的像素大小是指位图在高宽两个方向的像素数相乘的结果像素是图片大小的基本单位图像的像素大小是指位图在高宽两个方向的像素数相乘的结果例如宽度和高度均为100像素的图片其象素数是10000像素们经常用的数码相素数所描述的就是相拍出来的片是多大尺我机像机照照寸300万像素的数码照片通常是20481536像素而500万像素数码照片则是25601920像素
1024 ×1024 → 512 × 512 → 256 × 256 → 128 × 128 → 64 × 64 → 32 × 32
位图
图像像点
5
● 图像由基本显示单元“像点”构成 ● 像点由若干个二进制位进行描述 ● 二进制位代表图像颜色的数量 ● 二进制位与图像之间
存在严格的“位映射”关系 ● 具有位映射关系的图叫作“位图”
取出碎片1的最后一列,取出碎片2的第一列,进行对比 判断相似度高低。
Matlab数字图像处理
边缘检测可以用于图像分割、目标 识别等任务,是计算机视觉领域的 重要技术之一。
添加标题
添加标题
添加标题
添加标题
Matlab提供了多种边缘检测算法, 如Canny算法、Sobel算法等。
在Matlab中,可以使用edge函数进 行边缘检测,该函数可以指定不同 的算法和参数。
图像边缘检测:提取图像中的边缘信息,用于图像识别和特征匹配 图像分割:将图像划分为若干个区域,提取出感兴趣的区域特征
常用算法:JPEG、JPEG2000等是有损压缩编码的常用算法。
应用场景:适用于对图像质量要求不高的场合,如网络传输、移动设备存储等。
压缩感知编码是一种基于稀疏性的信号处理方法,通过测量矩阵对原始信号进行压缩,然后利用稀疏基进行重构。
压缩感知编码具有较高的压缩比和较好的重构精度,能够有效地减少存储空间和传输带宽。
定义:沃尔什-哈达玛变换是一种数 字图像处理技术,用于将图像从空 间域变换到频率域
应用:用于图像增强、图像压缩、 图像恢复等
添加标题
添加标题
添加标题
添加标题
原理:通过离散傅里叶变换实现图 像的频谱分析
优势:能够更好地提取图像特征, 提高图像处理的效果和效率
Matlab数字图像 分析技术
边缘检测是数字图像处理中的一项 基本技术,用于检测图像中物体的 边缘。
定义:将图像从空间域转换到频率 域
实现方法:通过离散傅里叶变换 (DFT)或快速傅里叶变换(FFT)
添加标题
添加标题
作用:分析图像的频率特征
添加标题
添加标题
应用场景:图像去噪、图像增强、 图像压缩等
定义:将图像进行多尺度分解, 得到小波系数
特点:具有多尺度分析能力, 能够提取图像的细节信息
《数字图像处理(matlab版)》教程课件
直
原
接
图
阈
像
值
分
割
0.25
算 法
算 法 算 法
割
分
法
算
OTSU
Niblack
KittlerMet
Kapur
割
分
值
阈
动
自
/2、图像的点运算
五、直方图均衡化
DB f
添 加 高 斯 白 噪 声
添 加 椒 盐 噪 声
/4、空间域图像增强 二、空间域滤波
滤波过程就是在图像f(x,y)中逐点移动模板,使模板中心和点(x,y)重合,滤波器 在每一点(x,y)的响应是根据模板的具体内容并通过预先定义的关系来计算的。
W(-1,-1) W(-1,0) W(-1,1)
W(0,-1) W(0,0) W(0,1)
原 图 像 及 直 方 图
图像变暗后灰度均衡化 图像变亮后灰度均衡化
/3、图像的几何变换
一、图像平移
正变换
1 0 0
[ x1 y1 1] [ x0 y0 1] 0 1 0
Tx
Ty
1
逆变换
1
0 0
[x0 y0 1] [x1 y1 1] 0
1 0
Tx
Ty
1
strel %用来创建形态学结构元素 translate(SE,[y x])%原结构元素SE上y和x方向平移 imdilate%形态学膨胀
thresh法:最大类间方差法自动单阈值分割。
Kapur算法:一维直方图熵阈值算法
niblack算法:局部阈值分割 阈值的计算公式是T = m + k*v,其中m为以该像素点为中心的区域的平 均灰度值,v是该区域的标准差,k是一个系数。
数字图像处理ch01(MATLAB)-课件
2024/10/12
第一章 绪论
17
2024/10/12
第一章 绪论
18
2024/10/12
第一章 绪论
19
2024/10/12
第一章 绪论
20
<2>几何处理
放大、缩小、旋转,配准,几何校正,面积、周长计算。
请计算台湾的陆地面积
2024/10/12
第一章 绪论
21
<3>图象复原
由图象的退化模型,求出原始图象
图像处理是指按照一定的目标,用一系列的操 作来“改造”图像的方法.
2024/10/12
第一章 绪论
7
➢图象处理技术的分类(从方法上进行分类)[2]
1.模拟图象处理(光学图像处理等)
用光学、电子等方法对模拟信号组成的图像,用光学器 件、电子器件进行光学变换等处理得到所需结果(哈哈 镜、望远镜,放大镜,电视等).
2024/10/12
第一章 绪论
22
<4>图象重建[3]
[3]此图像来自罗立民,脑成像,
2024/10/12
第一章 绪论
23
/zhlshb/ct/lx.htm
2024/10/12
第一章 绪论
图形用户界面,动画,网页制作等
2024/10/12象处理的基本概念,和基 本问题,以及一些典型的应用。
2024/10/12
第一章 绪论
33
提问
摄像头(机),扫描仪,CT成像装置,其他图象成像装置
2)图象的存储
各种图象存储压缩格式(JPEG,MPEG等),海量图象数据库技术
3)图象的传输
内部传输(DirectMemoryAccess),外部传输(主要是网络)
数字图像处理技术MATLAB图像处理简介.
分析图像中间一行灰度分布: >> plot(f(512,:))
200
100
0
0
200
400
600
800
1000
19 1200
MATLAB图像处理基础
• 图像放缩:利用函数imresize可实现图像放缩,一般形式 为: h = imresize(f, m, method); h为待放缩图像,m为倍数(小于1为缩小,大于1为放大 ),method为插值方法,ቤተ መጻሕፍቲ ባይዱ值为'nearest', 'bilinear', 或 'bicubic'。
>> gb = uint8(gb) gb = 0 1 0 1
>> gbd = im2double(gb) gbd = 0 0.0039 0 0.0039
17
MATLAB图像处理基础
• 图像处理的几个简单例子:
原图像(1024×1024) rose-original.tif
将原图像垂直翻转: >> f = imread('rose-original.tif'); >> fp = f(end:-1:1, :); >> imwrite(fp,'rose-verflip.tif');
quality = 100
quality = 50
quality = 5
7
MATLAB图像处理基础
• 显示图像信息: >> imfinfo rose.jpg
8
MATLAB图像处理基础
• 计算压缩率:将图像信息存储在结构变量中以方 便运算。
第11讲 Matlab数字图像处理
表 11.1 函数 imfinfo 返回的结构数组基本内容
结构数组成员名 Filename FileMoDate FileSize Format FormatVersion Width Height BitDepth ColorType 所代表函数 文件名称 文件最后修改日期和时间 文件大小(单位是字节) 文件格式或扩展名(tif、jpf 和 png 等) 文件格式版本号 图像文件的宽度,单位为像素 图像文件的高度,单位为像素 图像文件中每一个像素所占位宽(真彩色图像每个像素占 24 位) 图像类型(grayscale-灰度图像,truecolor-RGB 图像,indexed-索引图像)
表111函数imfinfo返回的结构数组基本内容结构数组成员名所代表函数filename文件名称filemodate文件最后修改日期和时间filesize文件大小单位是字节format文件格式或扩展名tifjpf和pngformatversion文件格式版本号width图像文件的宽度单位为像素height图像文件的高度单位为像素bitdepth图像文件中每一个像素所占位宽真彩色图像每个像素占24colortype图像类型grayscale灰度图像truecolorrgb图像indexed索引图像函数imtool利用函数imtool可以将图像在图像工具浏览器中:该函数是利用颜色映射表 map 的逆算法,将 RGB 图像转换为索引 图像。 例11.3 将 RGB 图像转换为索引图像。 RGB = imread('ngc6543a.jpg'); %Matlab 工具箱中的图像文件 subplot(131), imagesc(RGB), zoom(4) %图像放大 4 倍 [IND,map]=rgb2ind(RGB,32); subplot(132), image(IND), colormap(map), zoom(4) subplot(133), imshow(RGB) %不带坐标轴刻度的显示,图像不放大 例 11.4 将 RGB 图像转换为索引图像。 clc, clear a=imread('football.jpg'); %Matlab 工具箱中的图像文件 [x1,m1]=rgb2ind(a,128); %将 RGB 图像转换成索引图像,颜色种数 N 至多 128 种 [x2,m2]=rgb2ind(a,0.1); %将 RGB 图像转换成索引图像,颜色种数 N 至多 11^3 种 m3=colorcube(128); %创建一个指定颜色数目的 RGB 颜色映射表 x3=rgb2ind(a,m3); subplot(131), imshow(x1,m1) %显示用最小方差法转换后的索引图像 subplot(132), imshow(x2,m2) %显示用均匀量化法转换后的索引图像 subplot(133), imshow(x3,m3) %显示用颜色近似法转换后的索引图像 3. 索引图像转换为 RGB 图像 在 Matlab 中,利用函数 ind2rgb 函数可以将索引图像转换为 RGB 图像。其调用格式为 RGB=ind2rgb(X,map):其中[X,map]指向索引图像,RGB 指向转换后的真彩色图像。 例 11.5 将索引图像转换为真彩色图像。 clc, clear [x,a]=imread('kids.tif'); %Matlab 工具箱中的图像文件 b=ind2rgb(x,a); %将索引图像转换为真彩色图像 subplot(121), imshow(x,a), subplot(122), imshow(b) 11.2.2 Matlab 图像工具箱中的几个函数介绍 1.imread 和 imwrite imread 函数是从图像文件读图像,它的一般调用格式为 A=imread(filename) 返回值 A 为矩阵,当图像是黑白和灰度图像时,A 为二维矩阵,当图像是彩色图像时,A 是三维矩阵,即 A 为 3 个二维矩阵,分别为 R、G、B 的像素值。 imwrite 函数是把图像写到图像文件中,它的一般调用格式为 imwrite(A,filename) 把图像 A(二维矩阵或三维矩阵)写到图像文件 filename 中。 例 11.6 读入一个 bmp 图像,然后再把图像保存成 jpg 格式。 clc, clear a=imread('data6.bmp'); %非工具箱图像文件 imwrite(a,'data7.jpg') %把图像保存成 jpg 格式 subplot(121), imshow(a) %显示原图像 subplot(122), imshow('data7.jpg') %显示 jpg 图像 2. 文件信息读取函数 imfinfo 在 Matlab 中,对图像进行操作和处理时,经常需要知道图像文件的文件名、文件格式、 图像大小、图像类型和数据类型等信息,可以直接调用 Matlab 函数 imfinfo 来读取图像文件 的信息。其调用格式如下。 info=imfinfo(filename):该函数读取文件 filename 的信息。其中,filename 指的是图像 文件的“文件名” (包括后缀名) 。info 是一个结构数组。不同格式的文件最终得到的 info 所包含的结构成员不同,但基本都包含前 9 个结构成员,具体如表 11.1 所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab数字图像处理技术一、数字图像处理基础1、图形和图像的区别图形(矢量图):以几何数学为基础,图形由点、线、圆等图元组成,图形文件仅记录点的坐标和绘图命令。
图像(点阵图):用像素来描述的图,图像文件中记录每个像素的颜色和亮度。
2、四邻域和八邻域:4-邻域:设像素p(x,y),它有4个水平和垂直相邻的像素:(x-1,y)(x+1,y) (x,y-1)(x,y+1),这4个点组成p的4-邻域。
对角邻域:像素p(x,y)的4个对角临近像素:(x-1,y-1)(x+1,y-1)(x-1,y+1)(x+1,y+1),这4个点组成p的对角邻域。
8-邻域:像素p的4-邻域和对角邻域合起来组成p的8-邻域。
3、彩色模型(1)RGB模型8种颜色配比(归一化):(2)HIS模型:H(色度),S(饱和度),(I)亮度。
(3)二值模型:0—黑色,1—白色。
(4)灰度模型:白—黑有256个灰度级来显示图像,0—黑色,255—白色。
(5)几种图像的颜色数:二值图像:2种像素值灰度图像:256种灰度级彩色图像:256 * 256 * 256 = 2^24种索引彩色:4、图像处理中常用的输入设备:数码相机、数码摄像机、扫描仪;图像处理中常用的输出设备:显示器、打印机、绘图仪。
5、图像的存储:空间分辨率:M * N 幅度分辨率:G = 2^K存储一幅图像所需位数(bit):b = M * N * K。
二、图像的基本运算1、图像点运算F为输入点的灰度值,G为输出点的灰度值,a) b = 0时,a>1,图像对比度增大;0<a<1,图像对比度减小。
b) a = 1时,b>0,灰度值上移,亮度增加;b<0,灰度值下移,亮度降低。
c) a = 1,b = 255,图像反相。
Matlab中图像线性变换:Y = imlincomb(a,x,b); %Y=a*X+b2、图像的加法运算C(x,y) = A(x,y) + B(x,y)图像的叠加方法:g(x,y) = a*f(x,y)+ b*h(x,y);a+b = 1 matlab中:A = imread(‘第一幅图’);B = imread(‘第二幅图’);C = 0.5*A + 0.5*B;Imshow(c);3、减法运算主要检测同一场景两幅图像之间的变化G(x,y) = T2(x,y)- T1(x,y)Matlab中:A = imread(‘第一幅图’);B = imread(‘第二幅图’);C = A - B;Imshow(c);4、乘法运算用二值图像与原图像做乘法,得到需要的子图像。
Z = X .* Y; 要求X和Y的大小、数组元素相同。
Matlab中:X = imread(‘被点乘的图像’);Y = zeros(M,N);Y (70:120, 120:380) = 1;X = im2double(X);Z = X.*Y;Imshow(Z);5、图像几何运算(1)图像的镜像:B = fliplr(A);水平镜像B = flipud(A);垂直镜像(2)图像的平移:A = imread(‘tree.bmp’);[M N] = size(A);B = zeros(M, N, class(A));tx = 100, ty = 50;B(1+ty:M, 1+tx:N) = A(1:M-ty, 1:N-tx);imshow(B);(3)图像的旋转B = imrotate(A, 60, ‘bilinear’, ‘crop’);截去局部(4)图像的缩放B = imresize(A, m);(5)图像的转置B = A’三、图像的变换1、傅里叶变换傅里叶变换将图像从空域变换到频域;傅里叶逆变换将图像从频域变换到空域。
2、一维傅里叶变换(会计算)逆变换:Matlab中一维傅里叶变换: Y = fft(X),省略系数1/N3、二维傅里叶变换(会编程)Y = fft2(X)Matlab代码:A = zeros(300,300);A (100:200, 100:200) = 1;B = fft2(A);C = abs(B);D = fftshift(C);D1 = unint8(D);Imshow(D1);4、傅里叶变换的性质(1)平移不变性:在空域图像平移时,在频域中频谱不变(2)旋转一致性:空域中图像旋转a角度,在频域中同样也旋转a角度5、离散余弦变换Y = dct2(X)二维离散余弦变换A = imread(‘lenna.bmp’);A1 = im2double(A);B = dct2(A1);C = abs(B);Imshow(unint8(c));四、图像增强1、图像灰度映射(1)点运算:见二.1节(2)灰度拉伸将原始图像的灰度区间分成多段,分别作线性变换,即分段线性变换。
Y = imadjust(X, [a,b], [a’,b’]) *注意要归一化代码:A = imread(’ballet.bmp’);B = imadjust(A, [0, 0.2], [0, 0.8]);imshow(B);2、直方图的均衡化直方图:表达一幅图像灰度级数分布情况的统计图。
横坐标:灰度值fk,一般取0~255;纵坐标:1、某一灰度值fk的像素个数nk;2、灰度值fk出现的概率nk/n,n是像素的总个数。
*手工计算直方图均衡化步骤:(1)给出所有灰度级fk(k=0,…,L-1)的所有概率值;(2)求出所有累积分布函数gk:(3)对gk四舍五入取整:gk=(int)[(L-1)gk+0.5](4)确定对应关系:fk gk(5)计算新的概率值:Pf’*编程实现直方图均衡化Y = histeq(X)imhist(X)显示X的直方图代码:A = imread(‘pout.tif’);B = histeq(A);Imshow(B);3、空域滤波定义:在图像空间借助模板进行邻域操作,这一图像处理过程被称为空域滤波,模板被称为空域滤波器。
模板的定义:就是一个系数矩阵,经常是奇数。
*运算过程:就是用一个3*3的模板在图像上顺序滑动的过程。
i.设模版系数为3:ii.设图像的某子图像的灰度值为:iii.计算后像素点s5的灰度值为:R = k1s1+k2s2+...+k9s9空域滤波的分类1、平滑:消除噪声2、锐化:加强图像的边缘和轮廓。
(1)均值滤波a)目的:可去除图像的噪声,从而起到图像平滑的作用,但图像会模糊。
b)原理:利用模板,将一个像素及其邻域中的所有像素的灰度平均值赋给输出图像中相应的像素,从而达到平滑的目的。
c)模板的设计规则:模板的大小:3*3,5*5,……模板的系数:全为13*3的模板:模板尺寸越大,图像越模糊,图像细节丢失越多d) 给图像增加噪声给图像增加椒盐噪声:B = imnoise(A, ’saly & pepper’, d), d为噪声密度,缺省值0.05给图像增加高斯白噪声:B = imnoise(A, ‘gaussian’ , m, v); m为白色密度,默认0,v是噪声密度,默认0.01e) matlab编程实现A = imread(‘face_1.bmp’);h1 = ones(3,3)/9;B1 = imfilter(A, h1);imshow(B1);(2)中值滤波a)中值滤波的过程I. 用一个模板窗口在图像上滑动;II.把窗口中像素的灰度值按升序或者降序排列;III.将中间值赋给窗口中心的元素b)优点:1、抑制噪声2、较好的保护了边缘轮廓信息,减少模糊c)matlab编程实现A = imread(‘face_1.bmp’);B1 = mefilter2(A, [3,3]);imshow(B1);(3)锐化滤波用模板代替微分matlab编程实现A = imread(‘bot.bmp’);h1 = [1 2 1;0 0 0; -1 -2 -1];B1 = imfilter(A,h1);imshow(B1);4、频域滤波原理:图像变化平缓的部分靠近频域的圆心,这个区域为低频区域。
图像中边缘、噪音、变化陡峭的部分,以放射方向离开频域的圆心,这个区域为高频区域。
低通滤波:(1)步骤:a.对于给定的图像f(x,y),计算出它的傅立叶变换F(u,v)b.选择一个低通滤波器H(u,v)c.在频域内经行低通滤波G(U, V) = F(U,V) H(U,V)d.通过傅立叶的逆变换得到最终图像g(x, y)= F-1[G(u, v)](2)滤波器的选择Butterworth滤波器n为阶数,D0为截止频率到原点(u0, v0)的距离,D(u, v)为到原点(u0, v0)的距离。
(3)mybuffer_m:f = imread(‘一幅图’);f = im2double(f);F = fftshift(fft2(f));[M N] = size(F);n = 3; D0 = 40;u0 = floor(M/2); v0 = floor(N/2);for u = 1:Mfor v = 1:ND = sqrt((u-u0)^2+(v-v0)^2);H = 1/(1+(D/D0)^(2*n));G(u,v) = H * F(u, v);endendg = ifft2(ifftshift(G));g = im2unint8(real(g));imshow(g);5、彩色增强目的:1、将灰度图像转换成彩色图像;2、将真彩色图像进行处理,再得到新的真彩色图像。
彩色图像增强的方法:(1)伪彩色增强技术:将一幅灰度图转换成一幅彩色图像。
密度分割法:将一幅图像的灰度值分割成多个区间,每个区间赋予一种颜色●热金属编码[1~63] 蓝色[0,0,255][64~127] 紫色[200,0,200][128~191] 橘黄色[255,150,0][192~254] 黄色[255,255,0]●彩虹编码【0~63】蓝色【0,0,255】【64~127】绿色【0,255,255】【128~191】红色【255,0,0】【192~254】品红色【255,0,255】热金属编码代码:X = imread(‘cat.bmp’);Y = X/64; [M N] = size(Y);for i= 1:Mfor j = 1:Nswitch y(i, j)case 0Y1(I,j,1:3) = [0,0,255];case 1Y1(i,j,1:3) = [200,0,200];case 2Y1(i,j,1:3) =[255,150,0];case 3Y1(i,j,1:3) = [255,255,0];otherwiseY1(i,j,1:3)=[255,255,255]endendendimshow(Y1)(2)假彩色增强技术:将三幅灰度图像合成一幅彩色图像。