第五篇 Matlab图像处理_第1页
第五篇 Matlab图像处理_第2页
第五篇 Matlab图像处理_第3页
第五篇 Matlab图像处理_第4页
第五篇 Matlab图像处理_第5页
已阅读5页,还剩46页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五篇Matlab图像处理数字图像的概念下标表示了当前像素点在图像中的位置;表示了图像当前位置的亮度或灰度;数字图像的形成一幅数字图像由许多个像素组成,像素也是数字图像的单位之一;胶片(模拟)图像的单位为长度,如寸、毫米等等,1英寸证明照的尺寸为3.6cm×2.7cm;2英寸证明照的尺寸是3.5cm×5.3cm;5英寸照片的尺寸为12.7cm×8.9cm;

数字图像的生成就是为每个像素填上需要的颜色值。数码相机、摄像机、扫描仪等设备。图像处理是对数字图像进行各种操作,如亮度、对比度调整,去噪、边缘检测、压缩、分割和目标识别等工作;RGB彩色图像是由三幅独立的红、蓝、绿分量图像组成,对彩色图像的处理可以转化为对三基色分量图像的处理;1、Matlab图像处理工具箱常用命令1)图像读取I=Imread(‘pathorname’)[I,map]=Imread(‘pathorname’)2)显示图像Imshow(I)Imshow(I,map)Imshow(I,[low,high])Imshow(I,[])格式描述后缀TIFF标签图像文件格式.tif.tiffJPEG联合图像专家组.jpg.jpegGIF图形交换格式(imwriteunuse).gifPNG可移植网络图形.pngBMPWindows位图.bmpXWDXWindows转储.xwdI—待显示图像矩阵map—灰度级别,默认为256[low,high]为灰度最大、最小值,小于为0,大于为255;[]将low设置为矩阵I的最小值,high设置为I的最大值;3)pixval交互显示单个像素的亮度值;显示欧几里得距离;4)imfinfo获得图像文件信息;5)size(I)获得图像矩阵大小;6)保存图像imwrite(I,filename,fmt)imwrite(I,map,filename,fmt)I—待保存的图像矩阵;filename—图像保存路径;fmt—图像保存格式;7)改变图像大小B=imresize(I,scale)B=imresize(I,[mrowsncols])[B,newmap]=imresize(I,map,scale)实例:5-1.m2、图像分类1)灰度图像(亮度)灰度图像可分为8位和16位两种,像素数据类型为uint8和uint16,分别对应[0255]、[065535]2)二值图像像素取值只能为0或1;逻辑矩阵;B=logical(A)非零为1;Islogical判断是否为逻辑矩阵;Sample:5*5大小矩阵,按图像显示3)索引图像索引图像包括调色板和图像数据两部分,是把颜色进行排列、编号,图像数据对应为该点像素的颜色序号而非颜色本身;调色板为m×3矩阵,每一行代表一种颜色,各元素的值介于[0,1]之间,乘以255来表示实际值;交换调色板中各行的位置,导致像素对应颜色值的变化。实例:5-2.m4)真彩(RGB)图像由三基色RGB组合各种颜色值,每一幅真彩图像由三个基色分量图组合而成。真彩图像<----->灰度图像近似平均R=G=B=(R+G+B)/3亮度方程三基色与白光之间的数学关系,即三基色按什么比例组合可以生成白光;R=G=B=0.3R+0.59G+0.11B实例:5-3.m红+蓝=紫红+绿=黄蓝+绿=青黄+红=橙黄+蓝=绿红+蓝+绿=白3、图像类型转换根据需求,将图像在不同类型间进行转换;索引图像,无法直接滤波;1)dither通过抖动算法转换图像类型;X=dither(RGB,map)抖动算法将RGB图像按指定的调色板map转换为索引图像X;BW=dither(I)将灰度图像通过抖动算法转换为二值图像;2)im2bw通过设置亮度阈值,把真彩图像、索引图像以及灰度图像转换为二值图像;BW=im2bw(I,level)灰度图----二值图BW=im2bw(X,map,level)索引图----二值图BW=im2bw(RGB,level)真彩图----二值图3)ind2gray将索引图转换为灰度图像,命令去除了索引图像的色度和饱和度信息,而仅保留了亮度信息;I=ind2gray(X,map)4)ind2rgb将索引图转换为真彩图像,命令把调色板中的颜色值赋给了图像矩阵;I=ind2rgb(X,map)5)mat2gray将数据矩阵转换为灰度图像;I=mat2gray(A,[aminamax])I=mat2gray(A)6)gray2ind[X,map]=gray2ind(I,n)灰度图---索引图[X,map]=gray2ind(BW,n)二值图---索引图7)grayslice通过设定阈值将灰度图像转换为索引色图;X=grayslice(I,n)把灰度图像均匀量化为n个等级,然后转换为伪彩色图像;8)rgb2gray真彩图像转换为灰度图像,或将彩色调色板转换为灰度调色板;X=rgb2gray(A)9)rgb2ind真彩图像转换为索引图像;[X,map]=rgb2ind(RGB,n)调色板含n种颜色X=rgb2ind(RGB,map)实例:5-4.m插值---利用曲线拟合方法,通过离散采样点来建立一个连续函数来逼近真实曲线,再由重建函数就可以求出任意位置的函数值。插值拟合直线多点数据拟合直线,计算平行度等参数例:5-107line.m插值拟合圆三点及三点以上数据拟合圆例:5-101circle.m4、图像的几何操作图像的缩放、旋转、分割、剪切都属于几何操作。图像插值—缩放等操作时的像素取法1)、图像插值运算a)最近邻插值nearestneighborinterpolation每个插值输出像素的值就是输入图像中与其最近的采样点的值;它是matlab图像处理工具箱默认的插值方法,计算量小、速度快,对索引图像来说是唯一的方法。但当图像中含有较多高频分量时,会造成放大后的块状效应;b)双线性插值bilinearinterpolation其输出像素值是它在输入图像位置上2×2邻域内四个像素的平均值,即由某个像素周围四个像素的灰度值在水平和垂直两个方向进行插值;c)双三次插值bicubicinterpolation其输出像素值是它在输入图像位置上4×4邻域内16个像素的平均值;插值效果的提升带来了大量的计算,插值算法是目前研究的一项内容;d)一维插值函数interpfty=interpft(x,n)采用傅里叶变换进行计算,首先用fft函数把原始数据转换到傅里叶域,然后完成插值并转换回时域空间;例:5-103interpft.me)一维插值函数interp1yi=interp1(x,Y,xi,method)采用傅里叶变换进行计算,首先用fft函数把原始数据转换到傅里叶域,然后完成插值并转换回时域空间;例:5-104interp1.mf)二维插值函数interp2ZI=interp2(X,Y,Z,XI,YI,method)网格细分,按照二维函数f(x,y)来寻找已知数据点的中间点;Method参数例:5-105interp2.m‘nearest‘最近邻插值‘linear‘线性插值(默认)‘spline‘三次样条插值‘cubic‘类似三次样条插值,但插入数据点是均匀间隔的g)n维插值函数interpnVI=interpn(X1,X2,X3,...,V,Y1,Y2,Y3,...,,method)插值是建立在n维函数v=f(x,y,z,t)上的。例:5-106interpn.m5、图像几何操作函数1)imresize图像插值缩放B=imresize(A,scale)输入图像A可以是灰度图、二值图或RGB真彩图,scale是缩放比例,大于0;B=imresize(A,[mrowsncols])[mrowsncols]用于指定目标图像的尺寸,如果希望保持长宽比缩放,可以只指定一个参数,另一置为NaN;[Ynewmap]=imresize(X,map,scale/[mrowsncols])输入图像A是索引图,缩放比例或尺寸采用上两种均可;[...]=imresize(...,method)method用来指定缩放插值方法,‘nearest’、‘bilinear’、‘bicubic’;实例:5-10.m2)imrotate图像插值旋转B=imrotate(A,angle,method)旋转后图像超过原图像的部分默认置为0,method用来指定缩放插值方法,‘nearest’、‘bilinear’、‘bicubic’;B=imrotate(A,angle,method,’crop’)可以采用crop参数对旋转后图像进行剪切,实例:5-11.m3)imcrop图像的剪切从原始图像中剪切一个矩形子图,指定矩形顶点的坐标及长宽,或鼠标选取;I=imcrop生成一个交互的图像剪切窗口,用户由鼠标左键选择剪切窗口大小,可以拖动、缩放剪切窗,用鼠标右键菜单选择或双击来确定选择。I2=imcrop(I,rect)X2=imcrop(X,map,rect)rect包含矩形剪切窗信息,[xminyminwidthheight]实例:5-12.m4)矩形窗口imrect在当前图形窗口中生成一个交互的矩形框,用户通过鼠标左键拖拽选择矩形框的大小,可以拖动、缩放矩形框,并返回该矩形框的句柄。H=imrecth=imrect(hparent,position)hparent为当前图形窗口句柄,position包含矩形剪切窗信息,[xminyminwidthheight]5)矩形窗口imellipse在当前图形窗口中生成一个交互的椭圆框,用户通过鼠标左键拖拽选择椭圆框的大小,可以拖动、缩放椭圆框,默认为圆形框,并返回该矩形框的句柄。H=imellipseh=imellipse(hparent,position)position包含椭圆外接矩形窗的信息,[xminyminwidthheight]实例:5-108imrect.m6)交互直线imline在当前图形窗口中生成一根交互的、可拖拽的、可变长度的直线,并返回该矩形框的句柄。H=imlineh=imline(hparent,position)hparent为当前图形窗口句柄,position形如[X1X2;Y1Y2],包含直线的信息;7)多边形框impoly在当前图形窗口中生成一个交互的多边形框,用户通过鼠标左键拖拽选择多边形框的位置,可以拖动多边形框的各个顶点来改变多边形框的形状,并返回该多边形框的句柄。H=impolyh=impoly(hparent,position)position形如[X1,Y1;...;XN,YN],包含多边形框各顶点的信息;8)自选区域imfreehandH=imfreehand实例:5-109impoly.m图像的邻域和块操作1、滑块邻域操作滑块邻域是一组像素,操作对象为邻域中心的像素。对于m×n的滑块邻域,其中心像素的位置为:floor(([m,n]+1)/2)m=2,n=3floor(([2,3]+1)/2)=floor([3,4]/2)=[1,2]目的:对图像进行平滑、去噪等相关的像素操作;滑动邻域操作的步骤:1)选择像素;2)确定滑动邻域的大小;3)根据需要,选择函数对邻域内像素操作;4)计算结果作为输出图像的该点像素值;5)按1-4遍历原图像中的所有像素;邻域操作函数1)colfilt快速邻域操作,为每一个像素建立一个列向量,向量元素对应于该像素邻域的元素;B=colf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论