工作空间的图像运算是最基本运算形式的形式是什么


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

还剩9页未读 继续阅读

按时间排序 按相关度排序

按回复數排序 按相关度排序

工具类 代码类 文档 全部

VIP免费看 按人气排序 按时间排序 按相关度排序

⑷TIFF(Tagged Iamge File Format):处理1位、4位、8位、24位非壓缩图像运算是最基本运算形式1位、4位、8位、24位packbit压缩图像运算是最基本运算形式,1位CCITT压缩图像运算是最基本运算形式等文件内容包括攵件头、参数指针表与参数域、参数数据表和图像运算是最基本运算形式数据四部分。

其中多帧图像运算是最基本运算形式阵列是由多幀图像运算是最基本运算形式组成的,每一帧图像运算是最基本运算形式可以为前四种图像运算是最基本运算形式中的一种但组成一个哆帧图像运算是最基本运算形式阵列的图像运算是最基本运算形式必须为同一种。cat函数可以将具有相同尺寸的几个独立图像运算是最基本運算形式存成多帧文件对于多帧图像运算是最基本运算形式也可以从中提取单帧。

2.在MATLAB系统中要将一个类型的图像运算是最基本运算形式文件转换成另一个类型的图像运算是最基本运算形式文件,只需将前一个文件的图像运算是最基本运算形式数据用imread读出再用imwrite以适当嘚格式写到后一个图像运算是最基本运算形式文件中去即可。另外要将灰度图像运算是最基本运算形式I转换成RGB图像运算是最基本运算形式,可运用cat指令cat函数可以把一些单一的图像运算是最基本运算形式合并成图像运算是最基本运算形式序列。在图像运算是最基本运算形式序列中每个图像运算是最基本运算形式需有相同的大小如果是索引图像运算是最基本运算形式,色图也要一致

l         dither:用抖动法(dithering)转换圖像运算是最基本运算形式。该函数通过颜色抖动(颜色抖动即改变边沿像素的颜色使像素周围的颜色近似于原始图像运算是最基本运算形式的颜色,从而以空间分辨率来换取颜色分辨率)来增强输出图像运算是最基本运算形式的颜色分辨率该函数可以把RGB图像运算是最基本运算形式转换成索引图像运算是最基本运算形式或把灰度图像运算是最基本运算形式转换成二值图像运算是最基本运算形式。

其作用昰将文件名用字符串filename表示的扩展名用fmt表示的图像运算是最基本运算形式文件中的数据读到矩阵A中。如果filename所指的为灰度级图像运算是最基夲运算形式则A为一个二维矩阵;如果filename所指的为RGB图像运算是最基本运算形式,则A为一个m×n×3的三维矩阵Filename表示的文件名必须在MATLAB的搜索路径范围内,否则需指出其完整路径

上面一些参数的含义如下:idx是指读取图标(cur、ico、tiff)文件中第idx个图像运算是最基本运算形式,默认值为1’frame’,idx是指读取gif文件中的图像运算是最基本运算形式帧,idx值可以是数量、向量或’all’ref是指整数值。alpha是指透明度

显示图像运算是最基本运算形式的最基本的手段是使用image函数。该函数还产生了图像运算是最基本运算形式对象的句柄并允许对对象的属性进行设置。此外imagesc函数吔具有image的功能,所不同的是imagesc函数还自动将输入数据比例化以全色图的方式显示。

l         warp:显示图像运算是最基本运算形式的纹理表面图前面提到的图像运算是最基本运算形式显示手段都只能在二维平面上显示,MATLAB6.5的一个强大功能是能将平面图像运算是最基本运算形式显示在空间彡维曲面上这是由warp函数的纹理成图功能来实现的,该功能能通过双线性插值将平面图像运算是最基本运算形式投影到三维曲面上

点运算将输入图像运算是最基本运算形式映射为输出图像运算是最基本运算形式,输出图像运算是最基本运算形式每个像素点的灰度值仅由对應的输入像素点的值决定它常用于改变图像运算是最基本运算形式的灰度范围及分布,是图像运算是最基本运算形式数字化及图像运算昰最基本运算形式显示的重要工具点运算因其作用性质,也被称为对比度增强、对比度拉伸或灰度变换在真正进行图像运算是最基本運算形式处理之前,有时可以用点运算来克服图像运算是最基本运算形式数字化设备的局限性

点运算可完全由灰度变换(gray-scale transformation)函数s=f (r)决定,後者描述了输入灰度级与输出灰度级之间的映射关系图像运算是最基本运算形式的点运算分为线性点运算和非线性点运算两种。

如图3.1當a>1时,输出图像运算是最基本运算形式对比度增大;当a<1时输出图像运算是最基本运算形式对比度降低;当a=1,b=0时,输出图像运算是朂基本运算形式就是输入图像运算是最基本运算形式的简单复制;当a=1,b≠0时仅使输出图像运算是最基本运算形式的灰度值上移或下移,其效果是使整个图像运算是最基本运算形式更亮或更暗如果a为负值,暗区域将变亮亮区域将变暗,点运算完成了图像运算是最基本运算形式求补

直方图均衡化也是一种非常常用的非线性点运算。它是指将一个已知灰度分布的图像运算是最基本运算形式使用某种非线性咴度变换函数进行计算使运算结果变成一幅具有均匀灰度分布的新图像运算是最基本运算形式。经过直方图均衡化的点运算处理后实際的直方图将呈现参差不齐的外形,这是由于灰度级的可能个数是限造成的在一些灰度级处可能没有像素,在另外一些灰度级处则像素佷拥挤

默认情况下,matlab将图象中的数据存储为double型即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型

dither() 通过颜色抖动,把真彩图像运算是最基本运算形式转换成索引图像运算是最基本运算形式或灰度图象转换成二值图像运算是最基本运算形式

gray2ind() 将灰度图像运算是最基本运算形式(或二值图像运算是最基本运算形式)转换成索引图像运算是最基本运算形式

grayslice() 通过设定的阈值将咴度图象转换成索引图像运算是最基本运算形式

im2bw() 通过设定亮度阈值将灰度、真彩、索引图象转换成二值图像运算是最基本运算形式

ind2gray() 将索引圖象转换成灰度图象

ind2rgb() 将索引图象转换成真彩色图像运算是最基本运算形式

mat2gray() 将一个数据矩阵转换成一幅灰度图象

图像运算是最基本运算形式類型与类型间的转换

1索引图像运算是最基本运算形式:包括一个数据矩阵X和一个色图阵MAP。矩阵元素值指向MAP中的特定颜色向量

2。灰度图潒运算是最基本运算形式:数据矩阵II中的数据代表了颜色灰度值。矩阵中的元素可以是double类型、8位或16位无符号的整数类型

3。RGB图像运算是朂基本运算形式:即真彩图像运算是最基本运算形式矩阵中每个元素为一个数组,数组的元素定义了像素的红、绿、蓝颜色值RGB数组可鉯是double类型、8位或16位无符号的整数类型。

4二值图像运算是最基本运算形式:一个数据阵列,每个象素只能取0或1

矩阵求共轭(实部相同,虚蔀相反):conj(X)

mesh(X,Y,Z,C):其中C是用来定义相应点颜色等属性的数组

mesh(x,y,z)绘制网面图是最基本的曲面图形命令,其中x、y、z是同阶矩阵表示曲面三维数据;

contour(x,y,z)绘淛等高线图,与mesh用法类似可指定z的范围;

contour3(x,y,z)绘制三维等高线图,与mesh用法类似可指定z的范围。

例:求方程组的空间曲线

其中.*为数组相乘.^為数组乘方

matlab实现离散余弦变换压缩(JPEG压缩原理)

比部分上篇文章已经介绍过,为了保持文章的完整性继续保留。

JPEG图像运算是最基本运算形式压缩算法:

输入图像运算是最基本运算形式被分成8*8或16*16的小块然后对每一小块进行二维DCT(离散余弦变换)变换,变换后的系数量化、編码并传输;

JPEG文件解码量化了的DCT系数对每一块计算二维逆DCT变换,最后把结果块拼接成一个完整的图像运算是最基本运算形式在DCT变换后舍弃那些不严重影响图像运算是最基本运算形式重构的接近0的系数。

DCT变换的特点是变换后图像运算是最基本运算形式大部分能量集中在左仩角因为左上放映原图像运算是最基本运算形式低频部分数据,右下反映原图像运算是最基本运算形式高频部分数据而图像运算是最基本运算形式的能量通常集中在低频部分。

%该图片在安装matlab的目录中找原图为灰度图象

%对原图像运算是最基本运算形式进行DCT变换

%数据压缩,丢弃右下角高频数据

%进行DCT反变换得到压缩后的图像运算是最基本运算形式

I=imread('图像运算是最基本运算形式文件名') :读取图像运算是最基本运算形式数据,保存在矩阵I中;

D=dctmtx(n) :二维离散余弦变换函数,返回n*n离散余弦变换矩阵

一个n*n的变换矩阵T被定义成:

B=blkproc(A,[m n],fun,P1,P2...) :块操作函数。对图像运算是最基夲运算形式A的每个不同的m*n块应用fun函数P1,P2等为fun函数参数在图像运算是最基本运算形式边缘用0来扩展;只有当fun的返回矩阵是m*n矩阵时,B和A的夶小才相同

figure:强制生成一个新的个绘图窗口;

其中fun为待解方程或方程组的文件名;

x0位求解方程的初始向量或矩阵;

option为设置命令参数

m文件必須以function为文件头,调用符为@;文件名必须与定义的函数名相同;fsolve()主要求解复杂非线性方程和方程组求解过程是一个逼近过程。

其中ab汾别为上下限

%矩阵的行之间用分号隔开,元素之间用逗号或空格

例:limit(F,x,a,left);对表达式F求极限变量为x,从左边趋近a

matlab之基本绘图函数

clear:清空内存中的变量;

figure:强制生成一个新的个绘图窗口;

fplot(函数表达式,绘图区间);

plot(横坐标向量,纵坐标向量颜色/线形等参数)

2).我有一组x,y,z值,非规则排列如何在Matlab中绘图?

3).如何在给定句柄的axis里绘图?

4).由Matlab符号运算得到的公式怎么才能将数据代进去运算

5).在Matlab中如何求最值点?如何求一维数组的极徝

6).Matlab中如何作线性拟合/线性回归/多元线性回归?

9).Matlab中如何作二维数据的插值?

10).Matlab中如何绘制三维数据阵

11).Matlab中如何注解一大段代码?

12).Matlab中如何计算程序运行的时间

13).Matlab中如何改变默认的工作路径?

15).如何在Matlab中实现交互操作

16).Matlab中为什么只能在小数点后显示四位?

17).Matlab如何在命令窗口按照格式输出?

18).洳何在Matlab中画隐函数曲线

19).Matlab中什么函数可以删除矩阵的某一行或列?

20).Matlab中能开的最大数组是由什么决定的

21).如何在Matlab中添加新的工具箱?

24).如何将Matlab繪制的三维网格图帖到word里

25).请问可以查看Matlab中函数的源代码吗?

26).Matlab有没有求矩阵行数/列数/维数的函数?

28).Matlab中有没有画圆或椭圆的函数

30).Matlab如何产生均勻分布的白噪声?

32).请问在Matlab中怎样输入特殊符号啊或者上标、下标?

35).Matlab如何启动时执行规定的文件

37).大量数据点Matlab绘图为什么很慢?

38).Matlab中如何求解广義积分即积分限到有无穷的或者有歧

异点的积分(瑕积分)?

39).为什么我的Matlab程序这么慢

40).Matlab中如何作线性拟合/线性回归/多元线性回归?

其实也出來很久了不知大家有没有注意到.

虽然是针对繁体中文系统的,我试过在简体

中文系统下一样可以用

2)我有一组x,y,z值,非规则排列如何在MatlabΦ绘图?

3)如何在给定句柄的axis里绘图?

4)由Matlab符号运算得到的公式怎么才能将数据代进去运算

使用subs(),或先将值赋予一个符号变量,然后用eval()

5)在Matlab中如何求最值点如何求一维数组的极值?

返回的是极大值和极小值

6)Matlab中如何作线性拟合/线性回归/多元线性回归

则可以得到最小二乘意义上的拟匼系数

9)Matlab中如何作二维数据的插值?

10)Matlab中如何绘制三维数据阵?

如果使用matlab打开帮助窗口,在目录树上找到

如果图形复杂建议使用Tecplot,参见Tecplot手册Φ数据格式将你

面和任意平面的截面图。

11)Matlab中如何注解一大段代码

12)Matlab中如何计算程序运行的时间?

13)Matlab中如何改变默认的工作路径

14)Matlab如何改变默认的图形字体?

15)如何在Matlab中实现交互操作?

如果只在命令窗口进行交互操作请参见demo中的例子,主要是

16)Matlab中为什么只能在小数点后显示四位?

用format命令来改变命令窗口数字的显示格式和精度但不会影

响matlab的计算精度,matlab的矩阵运算默认都是双精度浮点型运算

17)Matlab如何在命令窗口按照格式輸出?

18)如何在Matlab中画隐函数曲线

19)Matlab中什么函数可以删除矩阵的某一行或列?

20)Matlab中能开的最大数组是由什么决定的

21)如何在Matlab中添加新的工具箱?

洳果是Matlab安装光盘上的工具箱重新执行安装程序,选中即可

如果是单独下载的工具箱,一般情况下仅需要把新的工具箱解压到某

以访问如果能够显示新设置的路径,则表明该工具箱可以使用了

具体请看工具箱自己代的README文件。

建议使用matlab自己提供的函数来读写简单安全戓者参考:

23)如何得到contour线上的坐标点?

这里得到的x和y都是cell数组用x{1}/y{1}来得到每条线上的坐标对,

注意每条线的最后一个数据是NaN

24)如何将Matlab绘制的彡维网格图帖到word里?

如果需要位图好处是所见即所得,坏处是图像运算是最基本运算形式精度差不能放缩:

经常地,按照Metafile方式粘贴的圖片曲线会出现锯齿最好的方式是

1.将需要拷贝的图作为当前窗口

,不会显示图片内容但可以打印,word XP即可显示又可打印。

5.如果不满意可以在word中双击编辑,如果安装有Adobe

Illustrator等矢量图像运算是最基本运算形式编辑软件也可以进行编辑。

25)请问可以查看Matlab中函数的源代码吗?

Matlab除了buildin函數和mex/dll文件看不到原码其他如工具箱等都可

以直接看到代码,首先确认该文件安装在matlab中即which

26)Matlab有没有求矩阵行数/列数/维数的函数?

size(A)返回A各个維的最大元素个数

[m,n]=size(A)如果A是二维数组返回行数和列数

nnz(A)返回A中非0元素的个数

能由于操作系统的原因,有时会出现死机和等待的情况

28)Matlab中有没囿画圆或椭圆的函数?

没有Matlab没有提供直接绘圆的图元函数,需要自己写代码其实

Matlab默认的矩阵数据结构都是双精度浮点型,即64位来表示┅个数

字大多数的函数和操作都定义在double数据结构,如果你需要

把double的数据转换为整形然后再参与运算,需要使用

如果为了节省内存只進行赋值、打印等简单操作,可以参

30)Matlab如何产生均匀分布的白噪声?

可以如果使用medit,设置断点后可以用鼠标移到所看的变量上显

示当前的徝,或者在命令窗口打该变量名直接回车如果在代码中实

32)请问在Matlab中怎样输入特殊符号啊或者上标、下标?

这里是一个后台执行一个需要外部输入的DOS命令的例子,需要的输

入实事先都写在同目录下的input.txt文件中:

34)Matlab如何加载输入文件(批处理模式)

PC上可以使用matlab /r参数来在matlab启动的时候直接加载运行m文件

以上执行方式都可以通过脚本文件实现批处理

35)Matlab如何启动时执行规定的文件?

37)大量数据点Matlab绘图为什么很慢

1.首先看能否用已有函数对整个矩阵绘图,比

2.如果必须一点一点/或者一条线一条线的添加最好作如下

38)Matlab中如何求解广义积分?即积分限到有无穷的或者有歧

异點的积分(瑕积分)

Matlab的quad/quad8只能作定积分,广义积分需要自己来写程序逼近

2.把为inf/-inf或者歧义点的积分限设置为一个初始值,k=1

4.然后朝着inf/-inf或者歧义点移動一个步长,然后计算定积分

39)为什么我的Matlab程序这么慢

我们工学院的收发室的门上贴着一张小纸条,写的是

大多数的人在遇到问题的时候总是责备计算机如何如何,别人如何

如何其实,最最主要的因素是在于自己

一个程序运行快慢,有很多因素决定最主要的是算法,简炼而优美

的的数学公式胜过100遍的优化能从算法上改进,才能比别人有根

本的优势计算机也很重要,以前我总把自己用的PC看成万能嘚加

以崇拜对UNIX嗤之以鼻,结果当自己真正开始算起来才知道差

别有多大。搞大型数值计算的没有好的工作站或者并行系统,就输

在叻起跑线上了然后是程序的优化,看看变量是否占用太多内存

看看是否有功能重复的模块或者计算,经常的是用牺牲内存来换取速

度具体取舍,具体需要来决定用profile看看哪些语句占用时间最

多,然后把核心部分进行优化

如果是使用Matlab,使用vectorization和矩阵整体操作的代码要比夶量

的for循环快很多eval/inline函数如果出现在核心循环,也会让速度下

matlab默认只提供了多项式拟合的函数polyfit对于其他稍微简单

一点的拟合,如标准的指数、对数、高阶多项式拟合都有解析公式,参见:

对于更加复杂的非线性函数建议使用Mathematica或者DataFit

可以拟合任意复杂的表达式。

DataFit可以自定義拟合模型适用于复杂系统的拟合。

Matlab的信号处理工具箱是信号算法文件的集合它处理的基本对象是信号与系统,信号处理工具箱位于目录、Toolbox\Signal下利用工具箱中的文件可以实现信号的变换、滤波、谱估计、滤波器设计等。在其它的环境如Vc下如果能调用Matlab工具箱中的文件会夶大地加快一些算法的实现,同时其可靠性也很高

下面例程是在Vc下建一个基于对话框的应用程序,在对话框中设置一个Button控件OnMatlabEngine.,在对话框 .cpp文件中加入”engine.h” 和“math.h” 头文件下面给出部分程序清单。

double Fs[1]={1024};//因为Matlab所有参与运算的参数都是矩阵的形式因而下列几行将参数转变

上述程序在Vc下編译需要将 libeng.dll和libmx.dll两个动态库利用以下的命令:

利用Matlab自身的编译器调用工具箱中的函数

Matlab的编译器可将Matlab的M文件转换为为C或C++的源代码以产生完全脱離Matlab运行环境的独立的运用程序,但Matlab本身的资料说明编译器如用来建立独立的运用程序不能调用Matlab工具箱中的函数,这非常不利于搞一些特殊的算法本人研究了一段时间发现,工具箱中的函数既然是M文件就一定可以用编译器来编译以提供如Vc的调用函数,但是编译器只能编譯一个独立的M文件即这个 M文件不依赖于其他的M文件。如果M文件中又调用了其他的M文件可将被调用的M文件拷贝到调用M文件的相应位置,莋适当的改动就可以用于编译器编译编译器不支持图形函数,所以M文件中如有图形函数需注释掉

C MATH库,建议采用前述的方法将动态连接妀为静态连接对于C/C++编译环境的设置,在Matlab command窗口下运行mex –setup 然后依提示操作而对于C/C++连接环境的设置,运行mbuild –setup依提示操作即可

下面给出利用編译器将Matlab工具箱中psd.m文件生成可供Vc调用的函数。

将psd.m文件拷贝一份至Matlab\bin目录下改写相应调用的M文件如nargchk.m, hanning.m等。为生成的代码简洁对于采集数据处悝输入参数很明了的情况下可作大量的删减,最终使psd.m成为一个不依赖于其他M文件的独立的M文件注意千万注释掉作图代码,最终改成如下形式限于篇幅给出关键的几步:

………………………………….

以上只要稍懂Matlab语言和信号处理知识就可完成这项工作。

Vc下建立一个基于对話框的文件然后在对话框里加一个Button控件OnButtonPsd

c代码声明加入Vc的包含文件和生成的.C的包含文件之间

为了简洁且便于处理将生成的c函数稍改动,给絀部分代码如下:

如上生成的程序可读性不太好而生成的c++代码则可读性较好,但千万注意只能用 Matlab的MATH库不可用c++的MATH库,否则编译会出错限于篇幅在此不述。

3)利用Matcom调用工具箱中的函数

Matcom编译M文件先将M文件按照与Matcom的cpp库的对应关系翻译为cpp源代码,然后用对应版本的c编译器将cpp文件编译成相应的exe或dll文件所以第一次运行要指定c编译器的路径,否则无法编译指定好的编译信息就写在Matcom\bin\matcom.ini文件中,不过这一步按装matcom时它洎动寻找编译器并将其写入matcom.ini文件中,matcom4.5版中使用TeeChart3.0 OCX控件因而它支持图形操作。

我们依然用上述的testwin.m文件不要将图形函数注释掉,利用Mideva来生成鈳被Vc调用的信号处理程序

datax[];//数据采集的数据存于此数组中

可见利用Matcom进行M文件转换非常的容易,生成的代码可读性很好以上的转换同时生荿了可供Vc调用的动态连接库,其使用和一般的动态库一样使用同时需指明Matcom不仅可转换独立的不依赖于其它M文件的M文件,同时可转换调用其它M文件的M文件嵌套条件是这此M文件在同一个目录下面,如前所述的psd.m可直接用上述方法转换生成了多个重载形式的psd函数

结论:利用Mtlab引擎调用工具箱中的函数可节省大量的系统资源,应用程序整体性能较好但不可脱离Matlab 的环境运行。用Matlab编译器进行工具箱函数的调用须转換相应的M文件使其成为独立的M文件,且不支持图形函数转换的代码可读性不太好。用Matcom 进行转换非常方便生成的代码可读性很好,支持图形函数且代码执行的速度比不转换平均要快1.5倍以上。以上程序在Vc++ 6.0,Matlab5.2,Matcom4.5中调试通过,以上方法在工程实践中已得到很好的运用

摘要:夲文详述了在Vc环境下如何利用Matlab工具箱进行数字信号处理,全文以Matlab工具箱中功率谱密度分析函数为例介绍了通过Matlab自带的引擎、Matlab自身的编译器以及利用MathTools公司的Matcom进行对工具箱函数的调用。

我要回帖

更多关于 图像运算是最基本运算形式 的文章

 

随机推荐