第7章 MATLAB工具箱简介

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
>> A A= 17 23 4 10 11 24 5 6 12 18 1 7 13 8 15
14 16 20 22 3 9
19 21 25 2
图像文件的读写
A=imread(filename,fmt):读文件数据至A。 fmt的可能取值有:‘jpg’或‘jpeg’(联合影像专家组格式 JPEG);’tif’或‘tiff’(标志图像文件格式TIFF);’gif’(图形 交换格式GIF);’bmp’(位图格式BMP);’png’(可移动 网络图形格式);等等。 imwrite(A,filename,fmt):写图像数据A至文件。 imfinfo filename:filename要包含完整路径,例如:
返回被胜中的若干点的据胜胜点方式可以是提imshowcanoetifimshowcanoetifvalsimpixelvals054900482403216016080160801922029020258802235025880290202235胜胜胜胜的基本思想是首先利用胜胜增强算子突出胜像中的局部胜胜然后定胜像素的胜胜强度通胜胜置胜限的方法提取胜胜点集
图像像素数据
图像类型
二值图像 索引图象 灰度图像 RGB图像
Double数据
MXN的整数矩阵,元素值 范围[0,1]。 MXN的整数矩阵,元素值 范围[1,p]。 MXN的浮点数矩阵,元素 值范围[0,1]。 MXNX3的浮点数矩阵,元 素值范围[0,1]。
uint8和uint16数据
MXN的整数矩阵,元素值 范围[0,1]。 MXN的整数矩阵,元素值 范围[0,p-1]。 MXN的整数矩阵,元素值 范围[0,255]或[0,65535]。 MXNX3的整数矩阵,元素 值范围[0,255]或 [0,65535]。
索引图转换为灰度图
>> load trees >> A=ind2gray(X,map); >> imshow(X,map); >> figure %在同一窗口显示有干扰 %可以采用subimage来在同一窗口显 %示多幅图像。 >> imshow(A)
图像显示
一般显示:imshow或image或imagesc,例如 A=imread(‘flowers.tif’);image(A); 投影显示(纹理成图):warp,例如:
二值图像举例
索引图象举例
Image matrix
colormap
灰度图像举例
RGB图像举例 图像举例
图像坐标系统: 图像坐标系统:像素坐标系
1 2
Columns
1
2 R o w s
图像坐标系统: 图像坐标系统:空间坐标系
将像素看成是一个 有区域的矩形块。
改变矩阵图像的坐标原点
>> A=magic(5); >> x=[19.5 23.5]; >> y=[8.0 12.0]; >> image(A,'XData',x,'YData',y); >> axis image >> colormap(jet(25));
离散余弦变换DCT 离散余弦变换
与傅立叶变换相比,离散余弦变换具有更好的压缩性能,在数据压 缩和数据通信中得到广泛的应用。 y=dct(x,n):计算指定的n点DCT; y=idct(x,n):计算指定的n点DCT反变换。
load mtlb subplot(2,2,1),plot(mtlb); x=dct(mtlb); subplot(2,2,2),plot(x); x(abs(x)<0.5)=0; subplot(2,2,3),plot(x); y=idct(x); subplot(2,2,4),plot(y);
信号的基本运算
信号加 x=x1+x2; 信号乘 x=x1.*x2; 幅度变化 y=alpha*x; 位移 y=[zeros(1,k),x] 对应于 y(n)=x(n-k); 折叠 y=fliplr(x) 对应于 y(n)=x(-n); 采样和 y=sum(x(n1:n2)) 对应于 y(n)=x(n1)+..+x(n2); 采样积 y=prod(x(n1:n2)) 对应于 y(n)=x(n1)*…*x(n2); 信号能量 E=sum(abs(x).^2) 信号功率 p=sum(abs(x).^2)/N …
7.2 数字图像处理工具箱
MATLAB的图像处理工具箱由一系列支持图像处理操作 的函数组成,按功能可以分为: 图像显示;图像文件输入输出;几何操作;图像分析 与增强;图像变换;图像滤波;二值图像处理;等等。 MATLAB的图像是将数据阵列元素以double(64位)的浮 点类型存储,也支持uint8和uint16类型。 MATLAB支持5种图像类型:索引图象、灰度图像、二 值图像、RGB图像和多帧图像阵列。 多帧图象阵列是由多帧图像组成,但组成的图像必须为 前面中的一种,cat函数可以用来将相同大小的几个独立 图像形成多帧文件。
I=imread('flowers.tif'); [x,y,z]=cylinder; subplot(121),warp(x,y,z,I); [x,y,z]=sphere(50); subplot(122),warp(x,y,z,I);
多帧图像阵列逐帧显示
利用imshow,image或subimage显示一帧图像,例如:
多帧图像阵列拼接显示
montage(I):拼接灰度图像;montage(X,map):拼接索引 图象;montage(RGB):拼接RGB图像,例如:
>> load mri >> montage(D,map)来自多帧图像阵列转化成电影显示
mov=immovie(X,map):将索引图象转换成电影。
>> load mri >> mov=immovie(D,map); >> colormap(map),movie(mov);
图像轮廓
快速离散傅立叶变换FFT 快速离散傅立叶变换
y=fft(x,n):计算n点FFT; clear y=fftshift(x):将零频位置移到频谱中心; t=linspace(0,pi,1000); y=ifft(x,n):快速离散傅立叶反变换。
data=exp(-t./2); power=fft(data); mag=abs(power);%振幅 phs=unwrap(angle(power));%相位 subplot(2,1,1); fre=[0,2,4,6,8,10]; stem(fre,mag(1:6),'r.'); subplot(2,1,2); stem(fre,phs(1:6),'b.');
离散傅立叶变换DFT 离散傅立叶变换
A=dftmtx(n)返回nXn的DFT变换矩阵,y=x*A则返回x的 DFT变换至y; Ai=conj(dftmtx(n))/n返回离散傅立叶反变换矩阵。
t=0:.01:1; x=sinc(2*pi*5*t); A=dftmtx(length(t)); y=x*A; subplot(1,2,1); plot(t,x); subplot(1,2,2); plot(t,y); Ai=conj(A)/length(t); yi=y*Ai; figure; plot(t,yi)
>> load mri >> subplot(221); >> colormap(map); >> subimage(D(:,:,:,1)); >> subplot(222); >> subimage(D(:,:,:,2)); >> subplot(223); >> subimage(D(:,:,:,3)); >> subplot(224); >> subimage(D(:,:,:,4));
>> imfinfo c:\MATLAB6P5\toolbox\simulink\blocks\blocksets.bmp
图像类型判断及转换
isbw:是否为二值图像;isgray:是否为灰度图像;isind: 是否为索引图象;isrgb:是否为RGB图像。 gray2ind:灰度图像转换为索引图象;im2bw:设置阀值 转换为二值图像;im2double(uint8, uint16):转换为 double(uint8或uint16)类型;mat2gray矩阵转换为灰度图 像;其他: ind2gray, ind2rgb, mat2gray, rgb2gray, rgb2ind等 还可用cat函数将灰度图像A转换为RGB图像,为: RGB=cat(3,A,A,A);
经典信号产生函数
X=sawtooth(t):产生周期为2*pi的锯齿波; X=square(t,duty):产生周期为2*pi的方波; Y=sinc(x):产生sinc函数的波形; 单位冲激信号x=zeros(1,n);x(1)=1; 单位阶跃信号x=ones(1,n); 复指数信号n=0:N-1;x=exp((sigma+jw)*n); ….
图像几何运算
改变图像尺寸:imresize,例如: B=imresize(A,[20,20]); 图像旋转: imrotate,例如:B=imrotate(A,30); 图像裁剪:imcrop,例如:B=imcrop(A,[10,10,150, 150]);其中[10,10,150,150]为用户指定的矩形 裁剪区[xmin,ymin,width,height];
图像的数学变换: 图像的数学变换:FFT
B=fft2(A):二维快速傅立叶变换
>> load imdemos saturn2 %提取imdemos中的saturn2 >> imshow(saturn2) >> B=fftshift(fft2(saturn2)); %将变换后的频谱中心从矩 阵的始点移到矩阵中心。 >> figure
A
C
像素选取
pixval:用于交互显示像素数据值 impixel:返回被选中的若干点的数据值,选点方式可以 是提供坐标或用鼠标选择(双击左键结束选择)。 >> imshow canoe.tif
>> imshow canoe.tif
>> pixval
>> vals=impixel vals = 0.5490 0.1608 0.2902 0.2588 0.4824 0.1608 0.2588 0.2902 0.3216 0.1922 0.2235 0.2235
原始图像
傅立叶振幅谱
>> imshow(log(abs(B)),[]); >> colormap(jet(64)) >> colorbar
图像的数学变换: 图像的数学变换:DCT
B=dct2(A):计算A的离散余弦变换。例如:
clear; RGB=imread('autumn.tif'); A=rgb2gray(RGB); B=dct2(A); imshow(A); figure; imshow(log(abs(B)),[]); colormap(jeT(64)); colorbar; B(abs(B)<10)=0; %除掉值小于10的数据(压缩) C=idct2(B)/255;%dct反变换 figure imshow(C);
希尔伯特变换HCT 希尔伯特变换
y=hilbert(x):返回x的解析信号y,其实部为原信号,虚 部为DCT得到的信号。 t=0:1/1023:1; x=sin(2*pi*60*t); y=Hilbert(x); plot(t(1:50),real(y(1:50))); hold on plot(t(1:50),imag(y(1:50)),':');
信号的表示与产生
信号处理的基本数据可以采用矩阵来描述:每一列代表 一个通道,每一行对应一个采样点。 例如:产生一个采样频率为1000Hz的离散信号 1)定义时间轴: fs=1000;t=0:1/fs:1; 2) 定义采样得到的信号: y=sin(2*pi*50*t)+2*sin(2*pi*120*t+0.5*randn(size(t)); (注:randn(1,n)产生均值为0,方差为1的白噪声) 3) 绘图:plot(t,y)
第7章 MATLAB工具箱简介 章 工具箱简介
中南大学 信息科学与工程学院 任胜兵
7.1 信号处理工具箱
信号处理工具箱式算法文件的集合,大部分为M文件, 覆盖了经典信号处理理论的大多数内容,在语音信号处 理、生物医学工程、实时控制理论、雷达信号处理等多 个研究领域得到成功的应用。 按功能,信号处理工具箱中的函数可分为: 1)信号与波形的产生; 2)信号变换处理; 3)滤波器的设计、分析与实现; 4)随机信号处理与谱估计; 5)时-频分析; 6)到谱分析;等等。
相关文档
最新文档