MATLAB图像操作命令大全

合集下载

MATLAB数字图像处理中的指令用法

MATLAB数字图像处理中的指令用法

• • • • • •
imshow(BW)显示一张二值图像BW imshow(X,map)用指定的调色板来显示图像 imshow(RGB)显示一张真彩色图像RGB imshow(...,display_option) imshow(x,y,A,...) imshow filename
• • • •
• • • • •
13.meshgrid
• • • • • • • • • • • • • • 函数功能生成绘制3-D图形所需的网格数据。在计算机中进行绘图操作时, 往 往需要一些采样点,然后根据这些采样点来绘制出整个图形。在进行3-D绘图 操作时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面 内对坐标进行采样得到的坐标对(x, y)。 例如:画一个128*128,截止频率为15的理想滤波器 for u=1:128 for v=1:128 if sqrt((u-64)^2+(v-64)^2)<=15 H(u,v)=1; else H(u,v)=0; end end end imshow(H); [u,v]=freqspace(128,'meshgrid'); figure,mesh(u,v,H)
• matlab中,每个figure都有(而且仅有)一个colormap,翻 译过来就是色图。 • COLORMAP(MAP) 用MAP矩阵映射当前图形的色图。 • COLORMAP('default') 默认的设置是 JET. • MAP = COLORMAP 获得当前色图矩阵. • COLORMAP(AX,...) 应用色图到AX坐标对应的图形,而非当 前图形. • MAP实际上是一个mx3的矩阵,每一行的3个值都为0-1之 间数,分别代表颜色组成的rgb值,[1 0 0] 代表红色,[0 1 0]代表绿色,[0 0 1]代表蓝色。系统自带了一些colormap, 如:winter、autumn等。输入winter,就可以看到它是一 个64x3的矩阵。用户可以自定义自己的colormap,而且不 一定是64维的。

matlab图形操作

matlab图形操作

matlab图形操作本⽂对matlab中利⽤图形句柄对图⽚属性进⾏设置的操作进⾏简单的总结说明:(1)对图窗和坐标轴属性进⾏整体设置可以通过gcf和gca语句获取当前图窗句柄和坐标轴句柄,通过该句柄可以对图窗和坐标轴的各项属性进⾏操作。

图窗和坐标轴分别包含如下属性:% 图窗属性... ...Children: [1×1 Axes] Color: [0.9400 0.9400 0.9400]Colormap: [256×3 double] CurrentAxes: [1×1 Axes]... ...InnerPosition: [680 558 560 420] PaperUnits: 'centimeters'OuterPosition: [672 550 576 514] Position: [680 558 560 420]Units: 'pixels'% 坐标轴属性... ...Box: 'on' BoxStyle: 'back'Children: [1×1 Line] Color: [1 1 1]FontAngle: 'normal' FontName: 'Helvetica'FontSize: 10 FontSizeMode: 'auto'FontSmoothing: 'on' FontUnits: 'points'FontWeight: 'normal' GridColor: [0.1500 0.1500 0.1500]GridLineStyle: '-' Legend: [0×0 GraphicsPlaceholder]LineWidth: 0.5000 OuterPosition: [0 0 1 1]Parent: [1×1 Figure] Position: [0.1300 0.1100 0.7750 0.8150]Title: [1×1 Text] TitleFontWeight: 'normal'Units: 'normalized' UserData: []View: [0 90] Visible: 'on'... ...XAxis: [1×1 NumericRuler] XAxisLocation: 'bottom'XColor: [0.1500 0.1500 0.1500] XColorMode: 'auto'XDir: 'normal' XGrid: 'off'XLabel: [1×1 Text] XLim: [0 100]XScale: 'linear' XTick: [0 10 20 30 40 50 60 70 80 90 100]XTickLabel: {11×1 cell} XTickLabelRotation: 0YAxis: [1×1 NumericRuler] YColor: [0.1500 0.1500 0.1500]YGrid: 'off' YLabel: [1×1 Text]YLim: [0 100] YScale: 'linear'YTick: [0 10 20 30 40 50 60 70 80 90 100] YTickLabel: {11×1 cell}YTickLabelRotation: 0 ZLabel: [1×1 Text]ZLim: [-1 1] ZScale: 'linear'ZTick: [-1 0 1] ZTickLabel: ''ZTickLabelRotation: 0... ...上⾯仅仅是展⽰了图窗和坐标轴部分重要且常⽤的属性,它们的全部属性可通过查matlab的帮助⽂档或直接在matlab的命令⾏上输⼊gcf、gca或通过如下图所⽰的属性窗⼝进⾏查询和设置。

MATLAB操作命令大全

MATLAB操作命令大全

MATLAB操作命令大全1.基本操作:- clear: 清除工作区中的所有变量。

- clc: 清除命令窗口的内容。

- close all: 关闭所有图形窗口。

- help function-name: 显示与函数相关的帮助文档。

- who: 显示当前工作区中的所有变量。

- save file-name: 保存当前工作区中的所有变量到指定的文件。

- load file-name: 从文件中加载变量到当前工作区。

2.变量操作:-=:赋值操作符,将右边的值赋给左边的变量。

-+:加法操作符。

--:减法操作符。

-*:乘法操作符。

-/:除法操作符。

-^:幂运算操作符。

- sqrt(x): 计算 x 的平方根。

- abs(x): 计算 x 的绝对值。

- max(x): 返回 x 中的最大值。

- min(x): 返回 x 中的最小值。

- sum(x): 计算 x 中所有元素的和。

3.数组操作:- zeros(m, n): 创建一个 m 行 n 列的全零数组。

- ones(m, n): 创建一个 m 行 n 列的全一数组。

- eye(n): 创建一个 n 行 n 列的单位矩阵。

- size(x): 返回 x 的维度。

- length(x): 返回 x 的长度。

- reshape(x, m, n): 将 x 重新排列为一个 m 行 n 列矩阵。

- transpose(x): 将 x 的行和列互换。

4.控制流程:- if-else: 条件语句,根据条件执行不同的代码块。

- for loop: 循环语句,执行指定次数的代码块。

- while loop: 循环语句,根据条件反复执行代码块。

- break: 在循环中使用,用来跳出当前循环。

- continue: 在循环中使用,用来跳过当前循环的剩余部分。

5.统计分析:- mean(x): 计算 x 的平均值。

- median(x): 计算 x 的中位数。

- std(x): 计算 x 的标准差。

matlab画图常用命令

matlab画图常用命令

matlab画图常用命令clc 清理命令窗口历史内容clear 清除所有内存存储的变量值clf 清除图形whos 显示各变量信息sqrt 开方edit 开编辑窗口linspace(a,b,N) 定义等差数列,a初值,b末值,N步数(即数据个数)logspace(a,b,N) 定义等比数列,初值10^a,末值10^b,N步数(即数据个数)A.*B 矩阵点乘,对应项相乘A./B 矩阵点除A.^B 矩阵点方(指数相同也要用点方)A=[a:n:b] 定义以a为开始,步长为n的等差数列,最后一个数不超过b(n省略代表步长为1)A' 矩阵转置A=[B,C;D] 矩阵拼凑e *10^exp e^format long 后续数据显示小数点后15位format short 后续数据显示小数点后4位format bank 后续数据显示小数点后2位(不适用于复数)format long/short e 后续数据科学技术法显示,并且小数点后15位/4位format long/short eng 后续数据类似科学技术法显示,但指数保持为3的整数倍,并且有效位数(15位+1/4位+1)format + 矩阵中各元素只显示正负,零为空格format rat 以分数形式显示有理数format long/short g Matlab自定最优显示load/save +文件名载入/储存工作区数据rem(a,b) a/b的余数size(A) A矩阵的大小[行数列数]ylim([0,1])help 打开帮助界面help+帮助界面中对应标题查看对应函数的使用nthroot(x,n) x的n次实数根sign(x) x大于零输出1;x等于零输出0;x小于零输出-1log10(x) lg(x)log(x) ln(x)【注:logb(a)=ln(a)/ln(b)】fix(x) 取整round(x) 对x四舍五入floor(x) 对x向负取整ceil(x) 对x向正取整factor(x) 对x因式分解gcd(a,b) 求a,b最大公约数lcm(a,b) 求a,b最小公倍数rats(x) 用分数表示xfactorial(x) x!nchoosek(n,k) 组合数n选kprimes(x) 找出小于x的素数isprime(x) x是素数,返回1sin(),cos(),tan()... 自变量为弧度asin(),acos(),atan()... 结果为弧度max(x),min(x) x适量中的最大、最小值[a,b]=max(A) A为一行时,a为最大值,b为最大值单行位置A为m行n列时,a为m行向量,对应各列最大值,b为m行向量,对应各列最大值在该列位置多个最大值时,位置默认第一个max(A,B) A、B同大,结果为A,B中对应位置最大值的汇总矩阵mean()/median()/mode() 求平均值/中位数/众数(众数选最小值)cumsum/cumprod(A) 求A的累加/累乘结果,生成与A同大小矩阵,(列运算)单矩阵运算sum/prod(A) A矩阵列求和/求积或求行向量和/积sort(A)/sort(A,'descend') 将A升序/降序排列(行向量自身升序/降序,矩阵列升序/降序)sortrows(A,n) 按第n列排列各行,n正升序,n负降序,n省略第一列升序size(x)/[a,b]=size(x) 返回[行数,列数]/给a、b赋值length(A) 矩阵A的最大长度(行数和列数的最大值)std(A) 求A的标准差(行向量自身求解,矩阵列求解)var(A) 求A的方差(行向量自身求解,矩阵列求解)rand/randn(m,n) 生成(0,1)m×n随机数矩阵/生成均值为0,标准差为1的高斯随机数矩阵(正态分布)【通过randn(m,n)*std+mean可得到均值为mean,标准差为std的正态分布随机数矩阵】A+B*i(complex(A,B)) 生成复数或复数矩阵real(A)/imag(A) 求实部/虚部isreal(A) 实数返回1coni(A) 求共轭【或用A'也可,但会发生行列互换】x为复数时abs(x)/angle(x) 求复数的模,与水平方向的夹角realmax/realmin 返回MATLAB能够使用的最大/最小浮点数intmax/intmin 返回MATLAB能够使用的最大/最小整数pi/i/j 圆周率/虚数/虚数clock 当前时间(一般使用fix(clock)增加可读性)date 返回日期,以字符串形式eps 返回MATLAB最小间隔矩阵A(n,:)/(:,m)【A(n,end)/(end,m)】A矩阵的第n行【最后一列】/第m列【最后一行】[A,B]=meshgrid(a,b),A.*B a,b为行向量,运行结果得a*b的m*n 维矩阵【meshgrid(x)等价于meshgrid(x,x)】zeros(m)/(m,n) m*m/m*n全零矩阵ones(m)/(m,n) m*m/m*n全一矩阵diag(A) 取对角元素为列向量diag(x) 若x为行向量或列向量,结果为对角阵其他元素为零diag(A,n/-n) 对角线右上/左下第n斜线上的元素fliplr(A)/flipud(A) A矩阵列/行进行对称翻转magic(m) 创建m*m维魔方矩阵作图xlabel/ylabel('') 添加x/y轴坐标title('') 添加表头grid 使图像出现网格figure(x) 创建或打开figure x窗口,之后作图均在该窗口进行hold on 保持图像窗口中之前的图像,进而在此作图不会清除之前图像(hold off取消)plot(x1,y1,x2,y2) 同时做两个图像plot(x) x为行向量,则以点数1至n为横轴,x为纵轴作图,按顺序依次连线plot(A) A为m*n矩阵,则图像为那条曲线,每条曲线横轴均为1至m,纵轴为相应列对应值plot(x,A) 以x为横轴,A的每一列为纵轴作图(x与A同维)plot(A,B) A与B需同维,对应列分别作为横轴和纵轴作图plot('标识符') 线型:-实线:点-.点画线--虚线点型:.点o圆圈xx形状+加号*星号s方形d菱形v下三角^上三角<左三角>右三角p五角星h六角星颜色:b蓝色g绿色r红色c青色m洋红色y黄色k黑色w白色【注】,多重输出可多重设定axis([a,b,c,d]) 限制图像x轴在[a,b],y轴在[c,d]legend('string1','string2',etc) 按照作图顺序添加图注text(x,y,'string') 在(x,y)处添加文本‘string’gtext('string') 添加文本‘string’,位置由鼠标点击确定【注】(适用于string形式)输入希腊字母需要'\'+希腊字母读法;^ 可出现上标,_ 可出现下标若想输出_或^,可用\+相应符号subplot(m,n,k) 将图形窗口划分成m行n列,所有的绘图操作都在一行一行数的第k个子图中进行【注】clf针对消除一个figure窗口内的内容,而plot等一系列操作针对一个子图中,且hold on/off被限于特定一个子图中,不影响其他子图polar(x,y) 绘制极图semilogx/semilogy(x,y) x轴对数,y轴线性/x轴线性,y轴对数作图loglog(x,y) 双对数坐标作图bar(x)/barh(x) x为矢量时,按x绘制垂直/水平条形图x为矩阵时,按各行分组绘制垂直/水平条形图bar3(x)/bar3h(x) 同上,绘制三维条形图pie(x)/pie3(x) 绘制(三维)饼状图。

matlab的常用指令及其含义

matlab的常用指令及其含义

matlab的常用指令及其含义1、清除命令窗口clc2、清除变量clear3、清除figureclf4、生成一个图层figure()figure(1)figure('name','实例')gwin=figure('MenuBar','none','NumberTitle','off','Name','菜单创建演示','Position',[(rect(3)-N)/2,(rect(4)-N)/2,N,N],'Resize','off','Color','red');5、打印disp(a)fprintf('the value of pi is%6.2f\n',pi)6、字符串和数字转换str2num(123)num2str('123')7、取整函数floor(2.3)==2 %为向下取整ceil(2.3)==3 %为向上取整round(2.3)==2 %为取最接近的整数fix(-3.5)==-3 %为向0取整8、复数运算temp = complex(1,2) %构造函数,==2+5ireal(temp) == 1 %返回实部imag(temp)==5 %返回虚部abs(temp)==5.3852 %返回模conj(temp)==2-5i %返回共轭复数9、快速生成矩阵A=zeros(5) %5行5列的0矩阵B=ones(5) %5行5列的1矩阵A=zeros(m,n) %m行n列0矩阵B=ones(m,n) %m行n列1矩阵A=eye(5) %5行5列的单位矩阵B=rand(3,5) %3行5列的0~1之间的随机矩阵A=magic(5) %5行5列的魔方矩阵,注意这里行和列必须相同10、生成随机矩阵rand(1,5) %生成一个1行5列的矩阵,即行向量11、求最大值max12、数据库结果转矩阵data_mat = cell2mat(data_cell);data_cell是数据库返回的结果,data_mat是矩阵13、求转置矩阵a=[1; 2; 3];b=a.'; %点+单引号b->{1 2 3}14、打印时间disp(datestr(datetime('now')));15、将矩阵转化为列向量,即列矩阵B=A(:); %A是矩阵16、读取矩阵取前N行或N列A(1:2,:) %读取矩阵A的1~2行A(:,1:3) %读取矩阵A的1~3列17、矩阵运算(加、减、乘、除、点乘、点除等)(1)A+B; 表示矩阵A和矩阵B相加(各个元素对应相加);(2)A-B; 表示矩阵A和矩阵B相减(各个元素对应相减);(3)A*B; 表示矩阵A和矩阵B相乘;(4)A.*B; 表示矩阵A和矩阵B对应元素相乘(点乘);(5)A/B; 表示矩阵A与矩阵B相除法;(6)A./B; 表示矩阵A和矩阵B对应元素相除(点除);(7)A^B; 表示矩阵A的B次幂;(8)A.^B; 表示矩阵A的每个元素的B次幂18、获取数组的行数和列数[rows,colums]=size(cell_data); %cell_data是2行3列的数组,rows==2 colums==319、获取数组的指定行和指定列first = cell_data(1,:); %第一行所有列first = cell_data(:,1); %第一列所有行。

(整理)数字图像处理MATLAB指令

(整理)数字图像处理MATLAB指令

其他常用的图像转换函数有:gray2ind函数,将灰度图像转换成索引图像。

Im2bw函数,将其它图像转化为二值图像。

Ind2gray函数,将索引图像转换成灰度图像。

Rgb2gray函数,将彩色图像转换成灰度图像。

1.利用imread( )函数读取一幅图像,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;函数执行语句A = imread('saturn.png');whosName Size Bytes Class AttributesA 1500x1200x3 5400000 uint8imshow(A)4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;imfinfo('saturn.png')5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg 文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。

imwrite(A,'xingxing.jpg','quality',25)B = imread('xingxing.jpg');6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。

imwrite(A , 'xingxing.bmp')C = imread('xingxing.bmp');7.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。

F = imread('circbw.tif');im2bw(F)imshow(F)实验二图像直方图与灰度变换下面给出灰度变化的MATLAB程序f=imread('medicine_pic.jpg');g=imhist(f,256); %显示其直方图g1=imadjust(f,[0 1],[1 0]);%灰度转换,实现明暗转换(负片图像) figure,imshow(g1)g2=imadjust(f,[0.5 0.75],[0 1]);%将0.5到0.75的灰度级扩展到范围[0 1] figure,imshow(g2)g=imread('point.jpg');h=log(1+double(g));%对输入图像对数映射变换h=mat2gray(h); %将矩阵h转换为灰度图片h=im2uint8(h); %将灰度图转换为8位图figure,imshow(h)下面给出直方图均衡化增强图像对比度的MATLAB程序:I=imread(‘pollen.jpg); % 读入原图像J=histeq(I); %对原图像进行直方图均衡化处理Imshow(I); %显示原图像Title(‘原图像’); %给原图像加标题名Figure;imshow(J); %显示直方图均衡化后的图像Title(‘直方图均衡化后的图像’) ; %给直方图均衡化后的图像加标题名Figure; subplot(1,2,1) ;%对直方图均衡化后的图像进行屏幕控制;作一幅子图作为并排两幅图的第1幅图Imhist(I,64); %将原图像直方图显示为64级灰度Title(‘原图像直方图’) ; %给原图像直方图加标题名Subplot(1,2,2); %作第2幅子图Imhist(J,64) ; %将均衡化后图像的直方图显示为64级灰度Title(‘均衡变换后的直方图’) ; %给均衡化后图像直方图加标题名1、利用自己编写的灰度直方图计算程序计算rice.tif图像的直方图,并与系统自带的计算程序进行对比。

MATLAB 图像处理命令使用

MATLAB 图像处理命令使用

MATLAB 图像处理命令使用1.MATLAB中图像处理的一些简单函数A、imreadimread函数用于读入各种图像文件,其一般的用法为[X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为图像的格式,filename为读取的图像文件(可以加上文件的路径)。

例:[X,MAP]=imread(’flowers.tif’,’tif’);比较读取二值图像,灰度图像,索引图像,彩色图像的X和MAP的特点,可以利用size 函数用来显示数组的维数,了解数据的特点。

B=size(a) 返回数组a 的维数。

B、imwriteimwrite函数用于输出图像,其语法格式为:imwrite(X,map,filename,fmt)imwrite(X,map,filename,fmt)按照fmt指定的格式将图像数据矩阵X和调色板map写入文件filename。

C、imfinfoimfinfo函数用于读取图像文件的有关信息,其语法格式为imfinfo(filename,fmt)imfinfo函数返回一个结构info,它反映了该图像的各方面信息,其主要数据包括:文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、文件的宽度、每个像素的位数、图像的类型等。

2.MATLAB中图像文件的显示imshowimshow函数是最常用的显示各种图像的函数,其语法如下:imshow(X,map)其中X是图像数据矩阵,map是其对应的颜色矩阵,若进行图像处理后不知道图像数据的值域可以用[]代替map。

(1)二进制(二值)图像显示方法,在MATLAB中一幅二值图像是uint8或双精度的,该矩阵仅包含0和1。

如果希望工具箱中的函数能将图像理解为二进制的,那么所有数据都要是逻辑数据,必须对其进行设置(将所有数据标志均设置on).可以对数据利用“~”取反操作实现图像逆转即黑白反色。

Matlab绘图命令

Matlab绘图命令

Matlab绘图命令:1.p lot(x,y):该命令用于描点法作图,给出x的范围,然后利用函数式计算出每一个x对应的y,注意,x间距取得越小,图像会画的越圆滑,这是因为plot描点法作图的原因.如:plot(x,y,’--’)2.f plot(y,[xstart xend]):该命令同样用于绘制图像,但是只需要给出x范围与y关于x的函数式即可,相比于plot 函数更加方便。

3.g rid on可以给图像加上网格4.h old on:用于连续绘图,如果想要在一个坐标系中画出多个图形的话,则需要在每次画完图形之前加入这个命令。

5.l egend(‘y’):在图上标出y曲线线型6.设置图线颜色:plot(x,y,’颜色’)7.a xis ( [xmin xmax ymin ymax] ):设置图像横纵坐标范围例:fplot('cos(x)',[-5 5],'r--'),axis ( [-5 5 -1 1] ),8.s ubplot(m, n, p):用于在一个窗口中绘制多个图像。

例:subplot(1, 2, 1);fplot('sin(x)',[-5 5],'b--');subplot(1, 2, 2);fplot('cos(x)',[-5 5],'r--');9.p lot(thea,r): 绘制极坐标图形,thea 是角变量,r是极轴长度例:a = 2;theta = [0:pi/90:2*pi];r = a*theta;polar(theta,r), title('阿基米德螺线')10.bar(x,y):画直方图11.stem(t,f):绘制针头图,这种图经常用来表示波动情况,或者各值和平均值的偏差,可以一目了然。

例:subplot(1, 2, 1);plot(t,f),xlabel('时间(秒)'),ylabel('弹簧响应');subplot(1, 2, 2);stem(t,f),xlabel('时间(秒)'),ylabel('弹簧响应');12.counter3(x,y,z,n):绘制三维等高图例:[x,y] = meshgrid(-2:0.1:2);z = y.*exp(-x.^2 - y.^2);contour3(x, y, z, 30);surface(x,y,z,'EdgeColor',[.8 .8 .8],'FaceColor','none');grid off;view(-15,20);13.mesh(x,y,z):绘制普通三维图14.surf(x,y,z):绘制颜色渐变三维图15.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB常用图像操作一. 读写图像文件1. imreadimread函数用于读入各种图像文件,如:a=imread('e:\w01.tif')注:计算机E盘上要有w01相应的.tif文件。

2. imwriteimwrite函数用于写入图像文件,如:imwrite(a,'e:\w02.tif',’tif’)3. imfinfoimfinfo函数用于读取图像文件的有关信息,如:imfinfo('e:\w01.tif')二. 图像的显示1. imageimage函数是MATLAB提供的最原始的图像显示函数(主要彩色显示图象),如:a=[1,2,3,4;4,5,6,7;8,9,10,11,12];image(a);2. imshowimshow函数用于灰度图像文件的显示,如:i=imread('e:\w01.tif');imshow(i);3. colorbarcolorbar函数用显示图像的颜色条。

通常,颜色映象进行过调节,把数据从最小扩展到最大,也就是说整个颜色映象都用于绘图。

有时也许想改变颜色使用的方法。

函数caxis代表颜色轴,因为颜色增加了另一个维数,它允许对数据范围的一个子集使用整个颜色映象或者对数据的整个集合只使用当前颜色映象的一部分。

[cmin,cmax]=caxis返回映射到颜色映象中第一和最后输入项的最小和最大的数据。

它们通常被设成数据的最小值和最大值。

比如,函数mesh(peaks) 会画出函数peaks的网格图,并把颜色轴caxis设为[-6.5466,8.0752],即Z的最小值和最大值。

这些值之间的数据点,使用从颜色映象中经插值得到的颜色。

如:i=imread('e:\w01.tif');imshow(i);colorbar;4 .figurefigure函数用于设定图像显示窗口,如:figure(1); /figure(2);5.imagesc(a); caxis([-3 8]) ; colorbar;标尺标度从-3,到8 显示标度尺。

三. 图像的变换1. fft2fft2函数用于数字图像的二维傅立叶变换,如:i=imread('e:\w01.tif');j=fft2(i);2. ifft2ifft2函数用于数字图像的二维傅立叶反变换,如: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. imnoiseimnoise函数用于对图像生成模拟噪声,如:i=imread('e:\w01.tif');j=imnoise(i,'gaussian',0,0.02);%模拟高斯噪声2. fspecialfspecial函数用于产生预定义滤波器,如: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,[]);colorbarn=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 二维周期小波变换idwtper2 二维周期小波反变换------------------------------------------------------------- (1) wcodemat 函数功能:对数据矩阵进行伪彩色编码格式:Y=wcodemat(X,NB,OPT,ABSOL)Y=wcodemat(X,NB,OPT)Y=wcodemat(X,NB)Y=wcodemat(X)说明:Y=wcodemat(X,NB,OPT,ABSOL) 返回数据矩阵 X 的编码矩阵 Y ;NB 伪编码的最大值,即编码范围为 0~NB,缺省值 NB=16;OPT 指定了编码的方式(缺省值为 'mat'),即:OPT='row' ,按行编码OPT='col' ,按列编码OPT='mat' ,按整个矩阵编码ABSOL 是函数的控制参数(缺省值为 '1'),即:ABSOL=0 时,返回编码矩阵ABSOL=1 时,返回数据矩阵的绝对值 ABS(X) (2) dwt2 函数功能:二维离散小波变换格式:[cA,cH,cV,cD]=dwt2(X,'wname')[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)说明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函数 'wname' 对二维信号 X 进行二维离散小波变幻;cA,cH,cV,cD 分别为近似分量、水平细节分量、垂直细节分量和对角细节分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D) 使用指定的分解低通和高通滤波器 Lo_D 和 Hi_D 分解信号 X 。

相关文档
最新文档