




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB基础及应用曹敦虔编著第7章数字图像处理本章学习重点掌握内容:数字图像基础灰度变换空间滤波频率域滤波彩色图像处理第7章数字图像处理7.1
数字图像基础7.2
灰度变换7.3
空间滤波7.4
频率域滤波7.5 彩色图像处理第7章数字图像处理随着计算机技术的发展,数字图像处理技术也得到了快速发展,数字图像也经广泛应用在工业、农业、军事、交通、医学、安全、人工智能等领域,人们的日常生活也常常涉及到数字图像处理,如指纹识别、人脸识别、手机拍照、扫码支付、文字识别等.本章将介绍数字图像的一些基础知识和常见数字图像处理算法.7.1数字图像基础一幅图像可以定义为一个二元函数z
=f(x,y),其中x和y是空间(平面)坐标,函数值z是图像在点(x,y)处的颜色或强度(灰度).若x,y和z都是有限的离散数值,称该图像为数字图像.一般情况下,x,y和z都取整数,1≤x≤m,1≤y≤n,z的取值范围根据图像的色彩空间不同而不同.每一个点(x,y,z)称为一个图像元素或像素,m×n是图像的像素数,通常称为图像的分辨率,m称为行分辨率,n称为列分辨率.yx7.1数字图像基础
7.1数字图像基础
7.1数字图像基础显示一幅图像的方式也有多种,最直观也最常用的一种方式是以平面图的方式显示,例如图7.1是一幅灰度图像的平面图.
图7.17.1数字图像基础由于图像可以看为二元素函数,所以灰度图像可以用三维柱形图的方式来显示,柱子的高度表示图像的灰度值.
图7.27.1数字图像基础还可以直接显示图像的数据,如下所示(这里仅显示一部分):
76 162 162 164 162 160 153 165 160 167 15876 162 162 164 162 161 154 165 160 167 15877 162 162 164 161 162 155 164 161 166 15878 161 162 163 159 162 157 163 161 165 15978 160 161 162 157 162 158 161 160 163 15978 159 160 160 155 162 159 159 159 160 16078 158 160 159 153 162 159 158 157 158 16078 157 159 158 152 161 159 157 155 156 16076 157 156 155 160 157 158 155 158 160 15776 157 156 155 159 156 157 155 156 159 15676 157 157 155 158 155 156 154 153 157 1567.1数字图像基础色彩深度是指表示1像素的颜色(或灰度)所需的存储空间的位数.色深决定了图像的颜色取值范围,也就决定了图像的色彩丰富程度.色彩深度为k的图像称为k比特图像.k比特图像的颜色数最多为2k,例如1比特图像最多只有2种颜色,2比特图像最多有4种颜色,8比特图像最多有256种颜色.在不压缩的情况下,保存一幅k比特图像所需的存储空间大小为m×n×k比特,即m×n×k/8字节.
2比特8比特24比特7.1.1黑白图像如果一幅图像只有黑、白两种颜色,那么这种图像称为黑白图像,也称为二值图像.可以使用1比特图像来表示黑白图像,通常用0表示黑色,1表示白色.在MATLAB中,通常使用一个逻辑型数组来表示一幅黑白图像.图7.4是一幅黑白图像及其部分数据.
111110000000111110000000111110000000111110000000111110000000111110000000111110000000111110000000图7.47.1.2
灰度图像如果一幅图像从黑到白有多个中间亮度的灰色,那么称这种图像为灰度图像.不同亮度的灰色数量称为灰度级,在计算中为了方便表示,灰度级通常都是2的整数次幂.k比特灰度图像可以有2k个不同亮度的灰色,所以灰度级为2k.1比特灰度图像就退化为黑白图像.最常见的是8比特灰度图像,总共有256种不同亮度的灰色,0表示黑色,255表示白色,0~255之间的整数表示介于黑与白之间的灰色.在MATLAB中,通常使用uint8型数组来表示一幅8比特灰度图像,有时候与使用值为0~1之间的double型的数组来表示.
151142139158142141125183791291501451611531131501949213614411914216289153176941881438611215211013714219220616090851161641371231781581621137383173139115104119135107931031201221151457.1.3 彩色图像如果一幅图像中有多种不同的颜色,那么就称这种图像为彩色图像.通常,表示一个彩色需要3个数值,所以彩色图像z=f(x,y)中的函数值z是一个3维向量.MATLAB是采用一个三维数组来表示一幅彩色图像的.用来描述颜色的数学模型称为彩色模型,常见的彩色模型有RGB、CMYK、HSI、Lab等,其中RGB模型最为常用,它是目前彩色显示器显示颜色的主要方式,也是MATLAB处理彩色图像时默认使用的彩色模型.有关彩色模型相关知识可参见7.5节.右图显示的是一幅RGB彩色图像及其R、G、B三个分量灰度图.
7.1.4 索引图像索引图像使用颜色映射表来表示颜色的一种图像.一幅索引图像包含两个部分,一部分是图像数据,另一部分是颜色映射表(调色板).图像数据是一个uint8型数组,其中的数值所代表的颜色由颜色映射表来定义.颜色映射表是一个排好序的m×3的double型数组(m通常为256),其中每一行代表一种颜色,其3个值分别是RGB颜色的三个分量的权重.假设图像数据为ai,则对应的颜色为Colormap(ai,:).在图像颜色数量较少(少于256色)的情况下,使用索引图像能够显著减小所需的存储空间,所以索引图像主要用于网络上的图片传输和一些对图像色彩要求不高,但对图片文件大小有严格要求的地方.
7.1.5 MATLAB图像处理基本命令
命令说明命令说明gray2ind将灰度图像转换成索引图像imshow显示图像im2bw将图像转换成黑白图像imwrite向文件中写入图像数据im2double将图像数组转换为double型数组ind2gray将索引图像转换成灰度图像im2uint16将图像数组转换为uint16型数组ind2rgb将索引图像转换成RGB彩色图像im2uint8将图像数组转换为uint8型数组mat2gray将数据矩阵转换成灰度图像imfinfo获取图片文件中的图像信息montage一次显示多帧图像immovie将多帧图像转换成动画rgb2gray将RGB彩色图像转换成灰度图像implay播放动画rgb2ind将RGB彩色图像转换成索引图像imread读取图片文件中的图像数据warp将图像显示到指定图形的表面上A=imread('世界地图.jpg');%读入图像subplot(2,2,1);xlabel('彩色图像');imshow(A);%显示图像subplot(2,2,2);xlabel('灰度图像');B=rgb2gray(A);%将图像转换成灰度图像imshow(B);subplot(2,2,3);xlabel('黑白图像');C=im2bw(B);%将图像转换成黑白图像imshow(C);subplot(2,2,4);title('将图像显示到球面上');%默认显示在图像上方,需手工调整至下方[x,y,z]=sphere(50);warp(x,y,z,A);示例:运行结果如图所示例7.1如图所示,有一幅图像,上面有一条由数据绘制而成的曲线,假设该数据已丢失,现在要通过图像尽可能地恢复原始绘图数据.分析:基本思路是先将图像转换为黑白图像并取反(白色为0,黑色为1),然后对图像的每一列检测是否有非0值,如果有则查找非0值的下标,其下标即是黑色像素的纵坐标.由于一列可能有多个黑色像素,如果有则取其纵坐标的平均值.为了尽量逼近原始数据,在图像上升期取纵坐标的最大值,在下降期取最小值.如果某列没有黑色像素,则设置纵坐标为NaN.在处理结束后再对结果进行遍历,如果有某一数值为NaN,但其两边的数值不为NaN,则取两边的数值的平均值作为该数值.最后再对数据进行标定.由于原始图像没有坐标系,无法获知原始数据的实际大小,所以标定到[0,1].functiony=DataRestorFromImg(A)%从数据图中恢复数据%A带有数据变化曲线的图像%y恢复的数据B=~im2bw(A);%转换为黑白图像,并取反[m,n]=size(B);y=zeros(n,1);forj=1:n
if(any(B(:,j)))%如果第j列存在非0值t=find(B(:,j));%查找非0值的下标y(j)=mean(t);%取平均值
%对尖点进行处理
if(j>1&&~isnan(y(j-1)))
if(y(j)>y(j-1))y(j)=max(t);%如果是上升期,则取最大值
elsey(j)=min(t);%如果是下降期,则取值小值
end
end
elsey(j)=nan;%如果第j列没有非0值,则设为nan
endend%处理中断点forj=2:n-1
if(isnan(y(j))&&~isnan(y(j-1))&&~isnan(y(j+1)))y(j)=(y(j-1)+y(j+1))/2;
endendy=1-y/m;%将数据标定到0~1endA=imread('数据图像.jpg');%读取图像y=DataRestorFromImg(A);plot(y);在另一个m程序文件中输入:显示结果:7.2 灰度变换灰度变换是指将图像的像素值r映射到像素值s的一种变换.用函数来表示就是S=T(r)称T为灰度变换函数.灰度变换的对像一般是灰度图像,如果是彩色图像,则可以针对每个分量定义一个变换函数,然后分别进行变换.本节主要介绍8比特灰度图像的灰度变换.
7.2.1 常用灰度变换1. 线性变换线性变换函数为s=kr+b其中,k和b是参数,取值不同可得到不同效果.当k>1,b=0时,灰度拉伸,图像变亮;当k<1,b=0时,灰度压缩,图像变暗;当k=1,b>0时,灰度整体平移向白色,图像整体变得更亮;当k=1,b<0时,灰度整体平移向黑色,图像整体变得更暗;当k=−1,b=255时,可实现图像灰度反转效果.:
A=imread('Lena.jpg');figure(1);subplot(1,2,1);xlabel('原图');f=@(r)r;imshow(f(A));subplot(1,2,2);xlabel('$s=r$','Interpreter','latex');fplot(f,[0255]);axisequal;xlim([0255]);ylim([0255]);figure(2);subplot(1,2,1);xlabel('线性拉伸r');f=@(r)2*r;imshow(f(A));subplot(1,2,2);xlabel('$s=2r$','Interpreter','latex');fplot(f,[0255]);axisequal;xlim([0255]);ylim([0255]);figure(3);subplot(1,2,1);xlabel('线性压缩');f=@(r)1/2*r;imshow(f(A));subplot(1,2,2);xlabel('$s=\frac{1}{2}r$','Interpreter','latex');fplot(f,[0255]);axisequal;xlim([0255]);ylim([0255]);figure(4);subplot(1,2,1);xlabel('反转变换');f=@(r)255-r;imshow(f(A));subplot(1,2,2);xlabel('$s=255-r$','Interpreter','latex');fplot(f,[0255]);axisequal;xlim([0255]);ylim([0255]);
(a)恒等变换(b)线性拉伸(c)线性压缩(d)反转变换7.2.1 常用灰度变换
A=imread('Lena.jpg');figure(1);subplot(1,2,1);c=255/log(256);f=@(r)uint8(c*log(1+double(r)));imshow(f(A));xlabel('对数变换');subplot(1,2,2);fplot(f,[0255]);axisequal;xlim([0255]);ylim([0255]);xlabel('$s=c\log(1+r)$','Interpreter','latex');figure(2);subplot(1,2,1);c=255/log(256);f=@(r)uint8(exp(double(r)/c)-1);imshow(f(A));xlabel('指数变换');subplot(1,2,2);fplot(f,[0255]);axisequal;xlim([0255]);ylim([0255]);xlabel('$s=\exp(\frac{1}{c}r)-1$','Interpreter','latex');(a)对数变换效果(b)指数变换效果7.2.1 常用灰度变换3. 幂律变换幂律变换也称伽马变换,其变换函数为s=c
rα其中,c和α是参数,取值不同可得到不同效果.若要使得当r=255时,s=255,可取c=2551−α.当α<1时,拉伸较暗的灰度,压缩较亮的灰度,图像整体灰度较为平均.当α>1时,压缩较暗的灰度,拉伸较亮的灰度,图像暗的区域更暗,亮的区域更亮,增强图像的对比度.
A=imread('Lena.jpg');figure(1);subplot(1,2,1);alpha=1/2;f=@(r)uint8(255.^(1-alpha).*(double(r)).^alpha);imshow(f(A));subplot(1,2,2);fplot(f,[0255]);axisequal;xlim([0255]);ylim([0255]);xlabel('$s=\sqrt{255}r^{1/2}$','Interpreter','latex');figure(2);subplot(1,2,1);alpha=2;f=@(r)uint8(255.^(1-alpha).*(double(r)).^alpha);imshow(f(A));subplot(1,2,2);fplot(f,[0255]);axisequal;xlim([0255]);ylim([0255]);xlabel('$s=\frac{1}{255}r^2$','Interpreter','latex');
(b)当α=2时的效果7.2.2 自定义变换
A=imread('Lena.jpg');figure(1);subplot(1,2,1);x=[0100150255];y=[060180255];%构造分段线性函数f=@(r)(x(1)<=r&r<x(2)).*((y(2)-y(1))./(x(2)-x(1)).*(r-x(1))+y(1))+(x(2)<=r&r<x(3)).*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 应急制氮装置项目可行性研究报告
- 连续铸造机项目可行性研究报告
- 钻井平台涂料项目可行性研究报告
- 2026年高考语文总复习文言文专题-学生版-古代文化常识(复习讲义)
- 防汛知识培训演练方案课件
- 防汛疏散知识培训内容课件
- 软件开发和服务合同书
- 新媒体行业发展趋势前瞻
- 智能家居市场用户行为分析
- 医疗健康行业市场前景分析
- 年产50万吨钙系列产品项目可行性研究报告
- 提高中小学班主任和思政课教师专业素养和育人能力的策略及实施路径
- 2025江西省水利投资集团有限公司秋季校园招聘116人笔试历年参考题库附带答案详解
- 智能化公司员工管理制度
- 铜川住房公积金管理办法
- 冷库工程培训课件模板
- 医院防疫员考试试题及答案
- 腹部血管超声诊断
- 成品油市场管理办法培训
- 2025至2030中国管理咨询行业产业运行态势及投资规划深度研究报告
- 【课件】绝对值(课件)数学人教版2024七年级上册
评论
0/150
提交评论