matlab中relay的用法,Matlab常用图像操作

一. 读写图像文件

1. imread

imread函数用于读入各种图像文件,如:a=imread('e:\w01.tif')

注:计算机E盘上要有w01相应的.tif文件。

2. imwrite

imwrite函数用于写入图像文件,如:imwrite(a,'e:\w02.tif',’tif’)

3. imfinfo

imfinfo函数用于读取图像文件的有关信息,如:imfinfo('e:\w01.tif')

二. 图像的显示

1. image

image函数是MATLAB提供的最原始的图像显示函数(主要彩色显示图象),如:

a=[1,2,3,4;4,5,6,7;8,9,10,11,12];

image(a);

2. imshow

imshow函数用于灰度图像文件的显示,如:

i=imread('e:\w01.tif');

imshow(i);

3. colorbar

colorbar函数用显示图像的颜色条。

通常,颜色映象进行过调节,把数据从最小扩展到最大,也就是说整个颜色映象都用于绘图。有时也许想改变颜色使用的方法。函数caxis代表颜色轴,因为颜色增加了另一个维数,它允许对数据范围的一个子集使用整个颜色映象或者对数据的整个集合只使用当前颜色映象的一部分。

[cmin,cmax]=caxis返回映射到颜色映象中第一和最后输入项的最小和最大的数据。它们通常被设成数据的最小值和最大值。比如,函数mesh(peaks)

会画出函数peaks的网格图,并把颜色轴caxis设为[-6.5466,8.0752],即Z的最小值和最大值。这些值之间的数据点,使用从颜色映象中经插值得到的颜色。如:

i=imread('e:\w01.tif');

imshow(i);

colorbar;

4 .figure

figure函数用于设定图像显示窗口,如:figure(1); /figure(2);

5.imagesc(a); caxis([-3 8]) ; colorbar;

标尺标度从-3,到8 显示标度尺。

三. 图像的变换

1. fft2

fft2函数用于数字图像的二维傅立叶变换,如:

i=imread('e:\w01.tif');

j=fft2(i);

2. ifft2

ifft2函数用于数字图像的二维傅立叶反变换,如:

i=imread('e:\w01.tif');

j=fft2(i);

k=ifft2(j);

3. 利用fft2计算二维卷积

利用fft2函数可以计算二维卷积,如:

a=[8,1,6;3,5,7;4,9,2];

b=[1,1,1;1,1,1;1,1,1];

a(8,8)=0;

b(8,8)=0;

c=ifft2(fft2(a).*fft2(b));

c=c(1:5,1:5);

利用conv2(二维卷积函数)校验, 如:

a=[8,1,6;3,5,7;4,9,2];

b=[1,1,1;1,1,1;1,1,1];

c=conv2(a,b);

四. 模拟噪声生成函数和预定义滤波器

1. imnoise

imnoise函数用于对图像生成模拟噪声,如:

i=imread('e:\w01.tif');

j=imnoise(i,'gaussian',0,0.02);%模拟高斯噪声

2. fspecial

fspecial函数用于产生预定义滤波器,如:

h=fspecial('sobel');%sobel水平边缘增强滤波器

h=fspecial('gaussian');%高斯低通滤波器

h=fspecial('laplacian');%拉普拉斯滤波器

h=fspecial('log');%高斯拉普拉斯(LoG)滤波器

h=fspecial('average');%均值滤波器

五. 图像的增强

1. 直方图

imhist函数用于数字图像的直方图显示,如:

i=imread('e:\w01.tif');

imhist(i);

2. 直方图均化

histeq函数用于数字图像的直方图均化,如:

i=imread('e:\w01.tif');

j=histeq(i);

3. 对比度调整

imadjust函数用于数字图像的对比度调整,如:

i=imread('e:\w01.tif');

j=imadjust(i,[0.3,0.7],[]);

4. 对数变换

log函数用于数字图像的对数变换,如:

i=imread('e:\w01.tif');

j=double(i);

k=log(j);

5. 基于卷积的图像滤波函数

filter2函数用于图像滤波,如:

i=imread('e:\w01.tif');

h=[1,2,1;0,0,0;-1,-2,-1];

j=filter2(h,i);

6. 线性滤波

利用二维卷积conv2滤波, 如:

i=imread('e:\w01.tif');

h=[1,1,1;1,1,1;1,1,1];

h=h/9;

j=conv2(i,h);

7. 中值滤波

medfilt2函数用于图像的中值滤波,如:

i=imread('e:\w01.tif');

j=medfilt2(i);

8. 锐化

(1)利用Sobel算子锐化图像, 如:

i=imread('e:\w01.tif');

h=[1,2,1;0,0,0;-1,-2,-1];%Sobel算子

j=filter2(h,i);

(2)利用拉氏算子锐化图像, 如:

i=imread('e:\w01.tif');

j=double(i);

h=[0,1,0;1,-4,0;0,1,0];%拉氏算子

k=conv2(j,h,'same');

m=j-k;

六. 举例

二维傅立叶变换和二维傅立叶反变换:

i=imread('e:\w01.tif');

figure(1);

imshow(i);

colorbar;

j=fft2(i);

k=fftshift(j);

figure(2);

l=log(abs(k));

imshow(l,[]);

colorbar

n=ifft2(j)/255;

figure(3);

imshow(n);

colorbar;

图像的变换

1. 离散傅立叶变换的 Matlab 实现

Matlab 函数 fft、fft2 和 fftn 分别可以实现一维、二维和 N 维 DFT 算法;而函数 ifft、ifft2 和

ifftn 则用来计算反 DFT 。这些函数的调用格式如下:

A=fft(X,N,DIM)

其中,X 表示输入图像;N 表示采样间隔点,如果 X 小于该数值,那么 Matlab 将会对 X

进行零填充,否则将进行截取,使之长度为 N ;DIM 表示要进行离散傅立叶变换。

A=fft2(X,MROWS,NCOLS)

其中,MROWS 和 NCOLS 指定对 X 进行零填充后的 X 大小。

A=fftn(X,SIZE)

其中,SIZE 是一个向量,它们每一个元素都将指定 X 相应维进行零填充后的长度。

函数 ifft、ifft2 和 ifftn的调用格式于对应的离散傅立叶变换函数一致。

例子:图像的二维傅立叶频谱

% 读入原始图像

I=imread('lena.bmp');

imshow(I)

% 求离散傅立叶频谱

J=fftshift(fft2(I));

figure;

imshow(log(abs(J)),[8,10])

2. 离散余弦变换的 Matlab 实现

2.1. dct2 函数

功能:二维 DCT 变换

格式:B=dct2(A)

B=dct2(A,m,n)

B=dct2(A,[m,n])

说明:B=dct2(A) 计算 A 的 DCT 变换 B ,A 与 B 的大小相同;B=dct2(A,m,n) 和

B=dct2(A,[m,n]) 通过对 A 补 0 或剪裁,使 B 的大小为 m×n。

2.2. dict2 函数

功能:DCT 反变换

格式:B=idct2(A)

B=idct2(A,m,n)

B=idct2(A,[m,n])

说明:B=idct2(A) 计算 A 的 DCT 反变换 B ,A 与 B 的大小相同;B=idct2(A,m,n) 和

B=idct2(A,[m,n]) 通过对 A 补 0 或剪裁,使 B 的大小为 m×n。

2.3. dctmtx函数

功能:计算 DCT 变换矩阵

格式:D=dctmtx(n)

说明:D=dctmtx(n) 返回一个 n×n 的 DCT 变换矩阵,输出矩阵 D 为 double 类型。

3. 图像小波变换的 Matlab 实现

3.1 一维小波变换的 Matlab 实现

(1) dwt 函数

功能:一维离散小波变换

格式:[cA,cD]=dwt(X,'wname')

[cA,cD]=dwt(X,Lo_D,Hi_D)

说明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函数 'wname' 对信号 X 进行分解,cA、cD

分别为近似分量和细节分量;[cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的滤波器组 Lo_D、Hi_D

对信号进行分解。

(2) idwt 函数

功能:一维离散小波反变换

格式:X=idwt(cA,cD,'wname')

X=idwt(cA,cD,Lo_R,Hi_R)

X=idwt(cA,cD,'wname',L)

X=idwt(cA,cD,Lo_R,Hi_R,L)

说明:X=idwt(cA,cD,'wname') 由近似分量 cA 和细节分量 cD 经小波反变换重构原始信号 X 。

'wname' 为所选的小波函数

X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重构滤波器 Lo_R 和 Hi_R 经小波反变换重构原始信号 X

X=idwt(cA,cD,'wname',L) 和 X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信号 X 中心附近的

L 个点。

3.2 二维小波变换的 Matlab 实现

二维小波变换的函数

-------------------------------------------------

函数名 函数功能

---------------------------------------------------

dwt2 二维离散小波变换

wavedec2 二维信号的多层小波分解

idwt2 二维离散小波反变换

waverec2 二维信号的多层小波重构

wrcoef2 由多层小波分解重构某一层的分解信号

upcoef2 由多层小波分解重构近似分量或细节分量

detcoef2 提取二维信号小波分解的细节分量

appcoef2 提取二维信号小波分解的近似分量

upwlev2 二维小波分解的单层重构

dwtpet2

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值