第3章_选讲_MATLAB三维绘图功能
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
颜色的渲染。
shading faceted —带重叠的黑色网格线的平面色调模式,这
也是默认的色调模式。
Peaks
5
0
-5 2 0 -2 y -2 x 2 0
shading flat —— 去掉黑色线条,根据小方块的值确定颜色
Peaks
5
0
-5 2 0 -2 y -2 x 2 0
shading interp —— 颜色整体改变,根据小方块四角的值 差补过度点的值确定颜色
t=(0:0.02:2)*pi; x=sin(t); y=cos(t); z=cos(2*t); >> plot3(x,y,z,'b-',x,y,z,'bd') view([-82,58]) box on legend('链','宝石')
多条三维曲线图
=-8:0.5:8; y=x; [X,Y]=meshgrid(x,y); R=sqrt(X.^2+Y.^2)+eps; Z=sin(R)./R; mesh(X,Y,Z) grid on axis([-10 10 -10 10 -1 1])
图形修饰方法
图形颜色的修饰
matlab 有极好的颜色表现功能,其颜色数据又构成了一 维新的数据集合,也可称为四维图形 colormap(MAP) —— 色图设定函数,MAP为m×3维色 图矩阵 图形颜色可根据需要任意生成,也可用matlab配备的色 图函数 shading设置颜色色调。该命令控制表面和块等图形对象
图像格式的转换 MATLAB还提供了若干函数,用于图像类型的转换。这些函数有: dither:用抖动法(dithering)转换图像。该函数通过颜色抖动(颜色 抖动即改变边沿像素的颜色,使像素周围的颜色近似于原始图像的颜色, 从而以空间分辨率来换取颜色分辨率)来增强输出图像的颜色分辨率。该 函数可以把RGB图像转换成索引图像或把灰度图像转换成二值图像。 gray2ind:灰度图像或二值图像向索引图像转换。 grayslice:设定阈值将灰度图像转换为索引图像。 im2bw:设定阈值将灰度、索引、RGB图像转换为二值图像。 im2double:将图像数组转换为double型。 im2uint8:将图像数组转换为uint8型。
四、图像变换
图像变换是指把图像从空间域转换到 变换域,一般是指图像的正交变换。
图像变换是图像处理的重要工具。通 过变换,改变图像的表示域,可以对 图像的后继处理带来极大的方便。 例如: 傅立叶变换:图像的频域分析 离散余弦变换: 使能量集中利于图像 压缩。
傅立叶变换的例子:
load imdemos saturn2 imshow(saturn2) b=fft2(saturn2); figure imshow(log(abs(b)),[]) colormap(jet(64)); colorbar
添加噪声
I=imread('eight.tif'); J1=imnoise(I,'gaussian',0,0.02); %对图像数据添加均值为0,方差为0.02的高斯噪 声。 J2=imnoise(I,'salt & pepper',0.02); %对图像数据添加椒盐噪声。 J3=imnoise(I,'speckle',0.02); %对图像数据添加乘性噪声。 subplot(2,2,1),imshow(I) subplot(2,2,2),imshow(J1) subplot(2,2,3),imshow(J2) subplot(2,2,4),imshow(J3)
MATLAB 三维绘图功能
Plot3函数(三维曲线图) Mesh函数(网格图)
Surf函数(曲面图)
(一)三维曲线图
plot3 —— 基本的三维图形指令
调用格式: plot3(x,y,z) —— x,y,z是长度相同的向量,以x, y, z为坐标绘
制三维曲线
plot3(X,Y,Z) —— X,Y,Z是维数相同的矩阵,以X,Y,Z对应列 为坐标绘制三维曲线 plot3(x1,y1,z1,‘s1’, x2,y2,z2,‘s2’, …) 选项的定义与plot函数相同
例:绘制三维线图 >>t=0:pi/50:10*pi; >>plot3(t,sin(t),cos(t),'r:')
例:绘制螺旋线 x=cos(t) y=sin(t) z=t 0≤t ≤4*pi >> t=0:0.001:4*pi; >> x=cos(t);y=sin(t);z=t; >> plot3(x,y,z) >> xlabel('x轴'),ylabel('y轴'),zlabel('z轴') >> grid on
peaks(30); shading interp; colormap(hot)
[X,Y,Z]=peaks(30); surfl(X,Y,Z) shading interp; colormap(cool); axis off
小结:色彩与效果
mesh, surf, surfc, surfl比较 : shading :涂色方式
rgb2ind:RGB图像向索引图像转换。包含三种不同方 法:均衡量化、最小值量化、色图映射。 im2java:一般图像向Java图像转换。 label2rgb:标志图像向RGB图像转换。
二、图像的增强
图像增强是指将原来不清晰的图像变 得清晰或强调某些关 注的特征,抑制 非关注的特征,使之改善图像质量、 丰富信息量,加强图像判读和识别效 果的图像处理方法。 主要目的: 改善视觉效果。 噪声抑制。 改善视觉效果的方法:
其它网格图
பைடு நூலகம்
例:利用mesh函数绘制不同着色方式的网状图。 Clear; close all; [X,Y]=meshgrid(-2:.2:2,-2:.2:2); Z=X.*exp(-X.^2-Y.^2); Subplot(1,3,1) Mesh(X,Y,Z); Subplot(1,3,2) Mesh(X,Y,Z,rand(size(Z)));%绘制随机彩色网状图 Subplot(1,3,3) M=mesh(X,Y,Z,2*ones(size(Z)),’edgecolor’,’k’);%绘制单色网 状图 Set(gcf,’color’,’w’)
三、图像去噪
现实中的数字图像在数字化和传输过程 中常受到成像设备与外部环境噪声干扰 等影响,称为含噪图像。取出或减轻在 获取数字图像中的噪声称为图像去噪。 图像去噪的过程大致分为以下几个步骤 : 1. 读入图像数据。 2. 对图像添加噪声。 3. 对带噪声的图像数据进行滤波处理。 4. 显示处理后的图像。
图像的显示格式为: imshow(I,[low high])
I为要显示的图像矩阵。[low high]为指定 显示灰度图像的灰度范围。高于high的像 素被显示成白色;低于low的像素被显示 成黑色;介于High和low之间的像素被按 比例拉伸后显示为各种等级的灰色。如 : I=imread('trees.tif'); imshow(I,[30 50])
im2uint16:将图像数组转换为uint16型。该函数不支持 二值图像序列的转换。 ind2gray:索引图像向灰度图像转换。 ind2rgb:索引图像向RGB图像转换。 mat2gray:将一个数据矩阵转换为灰度图像。 rgb2gray:RGB图像向灰度图像转换或将彩色色图转换 成灰度色图。
离散余弦变换(DCT):
离散余弦变换(DCT for Discrete Cosine Transform)是与傅里叶变换相关的一种变 换,它类似于离散傅里叶变换(DFT for Discrete Fourier Transform),但是只使用实 数。 是图像压缩中的一种常见变换,它将图 像表示成具有不同振幅和频率和正弦曲 线的和。例如: b=dct2(saturn2);
下图太暗,看不清轮胎的细节,需要对 图像进行增强处理。
I=imread(‘tire.tif’); %读入图像 J=histeq(I); %直方图均化 subplot(1,2,1),imshow(I) %显示原始图像 subplot(1,2,2),imshow(J) %显示增强后图 像 figure subplot(1,2,1),imhist(I,64) %显示直方图 subplot(1,2,2),imhist(J,64)
三维曲面图绘制
与函数mesh()不同,函数mesh()绘制得到的是网格图,而 函数surf()绘制得到的是着色的三维曲面图
比较mesh()与surf()的差别; [X,Y,Z]=peaks(30); Figure(1) Surf(X,Y,Z) Figure(2) Mesh(X,Y,Z)
添加噪声的结果:
去噪声处理:
邻域平均法: h=[1 1 1;1 1 1;1 1 1]; %产生滤波模板 h=h/9; %对模板归一化 J=conv2(J1,h); subplot(1,2,1),imshow(J1) subplot(1,2,2),imshow(J2)
去噪声处理:
中值滤波: J=medfilt2(J1); subplot(1,2,1),imshow(J1) subplot(1,2,2),imshow(J2)
三维图形的控制与修饰
1、视点处理 视点的函数格式为view,调用格式为: View(az,el) 其中az为方位角,el为仰角,它们均以度为单位。系统默 认的方位角为-37.5度,仰角为30度。
不同视觉图形 p=peaks;%系统提供的多峰值函数 subplot(2,2,1); mesh(peaks,p); view(-37.5,30); title('az=-37.5,el=30'); subplot(2,2,2); mesh(peaks,p); view(-17,60); title('az=-17,el=60'); subplot(2,2,3); mesh(peaks,p); view(-90,0); title('az=-90,el=0'); subplot(2,2,4); mesh(peaks,p); view(-7,-10); title('az=-7,el=-10');
一、图像的读取和显示 图像的读取格式为: A=imread(FILENAME,FMT) FILENAME 指定图像文件的完整路径和文件名。 如果在work工作目录下只需提供文件名。FMT为图 像文件的格式对应的标准扩展名。如: I1=imread ('D:\DCIM\100NCD90\55.bmp')');%读入图 像 图像的写入格式为: imwrite(A,FILENAME,FMT) FILENAME参数指定文件名。FMT为保存文件采用 的格式。 imwrite(I1,‘001.bmp');
clf; x= -1.5:0.2:1.5; y=-1:0.2:1; [X,Y]=meshgrid(x,y); p=sqrt(4-X.^2/9-Y.^2/4); subplot(3,2,1);mesh(p); %有网格 格子图,色调方向:有上到下 subplot(3,2,2);surf(p); %默认的方向:色调方向:有上到下 subplot(3,2,3);surfc(p); %带等高线;色调方向:有上到下 subplot(3,2,4);surfl(p); %色调方向:沿y轴方向 shading interp %平滑涂色 图,无格线 subplot(3,2,5);surfl(p) shading faceted %有网格涂色 格子图,有格线; subplot(3,2,6);surfl(p) shading flat %有网格涂色 格子图,无格线;
Matlab对数字图像的处理 图像和图像数据
图像文件的读写与查询
Matlab图像类型的转换
图像处理技术
图像的灰度变换与直方图
图像的空间变换
对图像进行边缘检测与分割
MATLAB图像处理