当前位置:文档之家› matlab《数字图像处理》第4章-图像类型与彩色模型的转换--附要点

matlab《数字图像处理》第4章-图像类型与彩色模型的转换--附要点

matlab《数字图像处理》第4章-图像类型与彩色模型的转换--附要点
matlab《数字图像处理》第4章-图像类型与彩色模型的转换--附要点

第四章 图像类型与 彩色模型的转换(附)

【目录】

一、图像类型的转换 (1)

1、真彩图像→索引图像 .................................... 2 2、索引图像→真彩图像 .................................... 3 3、真彩图像→灰度图像 .................................... 3 4、真彩图像→二值图像 .................................... 3 5、索引图像→灰度图像 .................................... 4 6、灰度图像→索引图像 .................................... 4 7、灰度图像→二值图像 .................................... 5 8、索引图像→二值图像 .................................... 6 9、数据矩阵→灰度图像 (6)

二、彩色模型的转换 (6)

1、图像的彩色模型 ........................................ 6 2、彩色转换函数 (7)

三、纹理映射 (9)

【正文】

一、图像类型的转换

1、真彩图像→索引图像

【格式】X=d i t h e r(R G B,m a p)

【说明】按指定的颜色表m a p通过颜色抖动实现转换

颜色抖动即改变像素点的颜色,使像素颜色近似于色图的颜色,从而以空间分辨率来换取颜色分辨率。

【输入】R G B可以是d o u b l e、u i n t16或u i n t8类型

【输出】X超过256色则为u i n t16类型,否则输出为u i n t8型

【例】

C L F

R G B=i m r e a d('f l o w e r s.t i f');

m a p=j e t(256);

X=d i t h e r(R G B,m a p);

s u b p l o t(1,2,1);s u b i m a g e(R G B);t i t l e('真彩图')

s u b p l o t(1,2,2);s u b i m a g e(X,m a p);t i t l e('索引图')

2、索引图像→真彩图像

【格式】R G B=i n d2r g b(X,m a p)

具有调色板m a p的索引图像X转换成真彩色图像R G B,实际实现时就是产生一个三维数据矩阵,然后将索引图像对应的调色板颜色赋予三维数据矩阵。

【输入】X可以是d o u b l e、u i n t16或u i n t8类型

【输出】R G B为d o u b l e类型

【例】

C L F,l o a d t r e e s;

R G B=i n d2r g b(X,m a p);

s u b p l o t(1,2,1);s u b i m a g e(X,m a p);t i t l e('索引图')

s u b p l o t(1,2,2);s u b i m a g e(R G B);t i t l e('真彩图')

3、真彩图像→灰度图像

【格式】I=r g b2g r a y(R G B)

【输入】R G B可以是d o u b l e、u i n t16或u i n t8类型

【输出】I类型同R G B

【例】

C L F,R G B=i m r e a d('f l o w e r s.t i f');

I=r g b2g r a y(R G B);

s u b p l o t(1,2,1);s u b i m a g e(R G B);t i t l e('真彩图')

s u b p l o t(1,2,2);s u b i m a g e(I);t i t l e('灰度图')

4、真彩图像→二值图像

【格式】B W=i m2b w(R G B,l e v e l)

【说明】设置亮度阈值l e v e l,将真彩图像转换为二值图像。L e v e l是归一化的阈值,值域范围为[01];l e v e l可以由函数g r a y t h r e s h(I)计算得到。

【输入】R G B可以是d o u b l e、u i n t16或u i n t8类型

【输出】B W为u i n t8型

【例】

C L F,R G B=i m r e a d('f l o w e r s.t i f');

B W=i m2b w(R G B,0.5);

s u b p l o t(1,2,1);s u b i m a g e(R G B);t i t l e('真彩图')

s u b p l o t(1,2,2);s u b i m a g e(B W);t i t l e('二值图')

5、索引图像→灰度图像

【格式1】I=i n d2g r a y(X,m a p)

【格式2】N e w m a p=r g b2g r a y(m a p)

【说明】格式2将彩色调色板m a p转换为灰度调色板N e w m a p

【输入】X可以是d o u b l e、u i n t16或u i n t8类型,m a p为d o u b l e类型【输出】I是d o u b l e类型,N e w m a p为d o u b l e类型

【例】

C L F,l o a d t r e e s;

I=i n d2g r a y(X,m a p);

N e w m a p=r g b2g r a y(m a p);

s u b p l o t(2,2,1);s u b i m a g e(X,m a p);t i t l e('索引图')

s u b p l o t(2,2,3);s u b i m a g e(I);t i t l e('格式1灰度图')

s u b p l o t(2,2,4);s u b i m a g e(X,N e w m a p);t i t l e('格式2灰度图')

6、灰度图像→索引图像

【格式1】1、[X,m a p]=g r a y2i n d(I,n)

2、X=g r a y s l i c e(I,n)

3、X=g r a y s l i c e(I,v)

【说明】格式1:将灰度图像转换为灰度级为n的索引图像X,n的默认值为64;

格式2:将灰度图像I均匀量化为n个等级,然后转换为伪彩色图像X;

格式3:按指定的阈值矢量v(其中每个元素在0和1之间)对图像I进行阈值划分,然后转换成索引图像

【输入】I可以是d o u b l e类型、u i n t8类型和u i n t16类型

【输出】m a p的行不大于256,则X为u i n t8类型,否则为u i n t16类型

【例】

C L F,I=i m r e a d('r i c e.t i f');

[X1,m a p1]=g r a y2i n d(I,16);

X2=g r a y s l i c e(I,8);

X3=g r a y s l i c e(I,255*[00.210.230.260.300.350.61.0]');

s u b p l o t(2,2,1);s u b i m a g e(I);t i t l e('灰度图')

s u b p l o t(2,2,2);s u b i m a g e(X1,m a p1);t i t l e('16灰度级图')

s u b p l o t(2,2,3);s u b i m a g e(X2,h o t(8));t i t l e('均匀量化图')

s u b p l o t(2,2,4);s u b i m a g e(X3,j e t(8));t i t l e('非均匀量化图')

7、灰度图像→二值图像

【格式一】B W=d i t h e r(I);

【格式二】B W=i m2b w(I,l e v e l)

【说明】格式一用抖动的方式实现转换,格式二用阈值方式转换

【输入】I可以是d o u b l e类型和u i n t8类型

【输出】B W支持逻辑0和1类型(一般为d o u b l e类型)

【例】

C L F,I=i m r e a d('s a t u r n.t i f');

B W1=d i t h e r(I);

B W2=i m2b w(I,0.5);

s u b p l o t(2,2,1);s u b i m a g e(I);t i t l e('灰度图')

s u b p l o t(2,2,3);s u b i m a g e(B W1);t i t l e('抖动二值化')

s u b p l o t(2,2,4);s u b i m a g e(B W2);t i t l e('阈值二值化')

8、索引图像→二值图像

【格式】B W=i m2b w(X,m a p,l e v e l)

【输入】X可以是d o u b l e、u i n t16或u i n t8类型

【输出】B W为u i n t8类型

【例】

C L F,l o a d t r e e s;

B W=i m2b w(X,m a p,0.5);

s u b p l o t(1,2,1);s u b i m a g e(X,m a p);t i t l e('索引图')

s u b p l o t(1,2,2);s u b i m a g e(B W);t i t l e('二值图')

9、数据矩阵→灰度图像

【格式】1、I=m a t2g r a y(A,[m a x,m i n])

2、I=m a t2g r a y(A)

【说明】按指定的取值区间[m a x,m i n]将数据矩阵A转换为灰度图像I,a m i n是灰度最暗的值(0值),a m a x是灰度最亮的值(1值)。如不指定区间,自动取最大区间。

【输入】A为d o u b l e类型

【输出】I为d o u b l e类型

【例】

C L F;I=i m r e a d('r i c e.t i f');

A=f i l t e r2(f s p e c i a l('s o b e l'),I);

J=m a t2g r a y(A);

s u b p l o t(1,2,1);s u b i m a g e(I);t i t l e('原图')

s u b p l o t(1,2,2);s u b i m a g e(J);t i t l e('转换图')

二、彩色模型的转换

1、图像的彩色模型

(1)R G B模型

是色光的彩色模式,R代表红色,G代表绿色,B代表蓝色。R G B颜色模型是显示和保存彩色图像最常用的模型,三维空间中的3个轴分别与红绿蓝三个分量相对应。原点对应于黑色,离原点最远的顶点对应于白色,其它颜色位于三维空间中。

为了处理方便,所有颜色值都被归一化处理,也就是所有的R G B值都被假定在[0,1]范围上。

(2)N T S C模型

N T S C模型用于电视信号。其特点是亮度信号与色度信号相分离。一个信号能同时表示彩色图像和黑白图像。他的Y表示亮度,I表示色度,Q表示饱和度。

(3)H S V模型

根据人眼的视觉特性表示的颜色,H表示色调,S表示饱和度,V表示明度。

H S V模型是面向用户的,在通常使用的色彩轮和调色板中选择的色彩(如画笔和墨水等)。因此它比R G B颜色模型具有更好的视觉效果。H、S 和V三个分量取值范围都是[01.0].

H:从色彩来说基本经过红、黄、绿、蓝绿、蓝、紫到红,因此红对应了0和1值。S:对应于色调种类从不饱和(灰度梯度)到全饱和(无白色);V:对应于色彩由暗变亮。

(4)Y C b C r模型

Y C b C r模型是数字视频中常用的颜色模型。Y表示亮度信号,亮度信息存储在Y中,色度信息存储在C b、C r中。C b表示绿色色度分量;C r表示红色色度分量。

2、彩色转换函数

(1)R G B颜色空间转换到N T S C颜色空间

【格式】Y I Q M A P=r g b2n t s c(R G B M A P)

【说明】将R G B色表转换为Y I Q色表

【输入】R G B M A P为d o u b l e类型

【输出】Y I Q M A P为d o u b l e类型

【格式】Y I Q=r g b2n t s c(R G B)

【说明】表示将R G B图像转换为N T S C图像

【输入】R G B为d o u b l e、u i n t8或u i n t16类型

【输出】Y I Q为d o u b l e类型

【例】

C L F,R G B=i m r e a d('f l o w e r s.t i f');

Y I Q=r g b2n t s c(R G B);

s u b p l o t(2,3,1);s u b i m a g e(R G B);t i t l e('R G B图像')

s u b p l o t(2,3,3);s u b i m a g e(m a t2g r a y(Y I Q));t i t l e('N T S C图像') s u b p l o t(2,3,4);s u b i m a g e(m a t2g r a y(Y I Q(:,:,1)));t i t l e('Y分量') s u b p l o t(2,3,5);s u b i m a g e(m a t2g r a y(Y I Q(:,:,2)));t i t l e('I分量') s u b p l o t(2,3,6);s u b i m a g e(m a t2g r a y(Y I Q(:,:,3)));t i t l e('Q分量')

(2)N T S C颜色空间转换到R G B颜色

【格式】R G B M A P=n t s c2r g b(Y I Q M A P)

【说明】将Y I Q色表转换为R G B色表

【输入】Y I Q M A P为d o u b l e类型

【输出】R G B M A P为d o u b l e类型

【格式】R G B=n t s c2r g b(Y I Q)

【说明】表示将Y I Q图像转换为R G B图像

【输入】Y I Q为d o u b l e类型

【输出】R G B为d o u b l e类型

【例】

C L F,l o a d t r e e s;

Y I Q M A P=r g b2n t s c(m a p);

m a p1=n t s c2r g b(Y I Q M A P);

Y I Q M A P=m a t2g r a y(Y I Q M A P);

Y m a p=[Y I Q M A P(:,1),Y I Q M A P(:,1),Y I Q M A P(:,1)];

I m a p=[Y I Q M A P(:,2),Y I Q M A P(:,2),Y I Q M A P(:,2)];

Q m a p=[Y I Q M A P(:,3),Y I Q M A P(:,3),Y I Q M A P(:,3)];

s u b p l o t(2,3,1);s u b i m a g e(X,m a p);t i t l e('原始图像')

s u b p l o t(2,3,2);s u b i m a g e(X,Y I Q M A P);t i t l e('转换图像')

s u b p l o t(2,3,3);s u b i m a g e(X,m a p1);t i t l e('还原图像')

s u b p l o t(2,3,4);s u b i m a g e(X,Y m a p);t i t l e('N T S C的Y分量')

s u b p l o t(2,3,5);s u b i m a g e(X,I m a p);t i t l e('N T S C的I分量')

s u b p l o t(2,3,6);s u b i m a g e(X,Q m a p);t i t l e('N T S C的Q分量')

(3)r g b2h s v

(4)h s v2r g b

(5)r g b2y c b c r

(6)y c b c r2r g b

三、纹理映射

使用i m s h o w命令时,M A T L A B通常以二维视图形式显示一幅图像。纹理映射使用W A R P命令通过插值的方法将一幅图像映射到一个曲面网格上。

纹理映射是一种将二维图像映射到三维图形表面的一种技术。W a r p函数是通过插值实现图像的纹理映射,显示在三维空间中。

格式如下:

W A R P(X,M A P)-将索引图像显示在缺省表面上

W A R P(I,N)-将灰度图像显示在缺省表面上

W A R P(B W)-将二值图像显示在缺省表面上

W A R P(R G B)-将真彩图像显示在缺省表面上

W A R P(z,...)-将图像显示z表面上

W A R P(x,y,z,...)-将图像显示(x,y,z)表面上

H=W A R P(...)-返回图像的句柄

输入图像的数据格式可以是l o g i c a l、u i n t8、u i n t16或d o u b l e类型。

【例】

[x,y,z]=c y l i n d e r;

I=i m r e a d('F L O W E R S.T I F');

w a r p(x,y,z,I);

【例】

[X,Y,Z]=E L L I P S O I D(0,0,0,1,2,3,50);

S U R F(X,Y,Z);

R G B=I M R E A D('F L O W E R S.T I F');

W A R P(X,Y,Z,R G B);

P=P E A K S(50);

R G B=I M R E A D('g r e e n s.j p g');

W A R P(P,R G B);

图像的类型与格式教案祥案

说课部分: 各位老师、各位同学,大家好,今天我上的课是《图像的类型与格式》,在上课之前我先进行说课,我的说课由以下几个部分组成: 首先我先进行教材分析,本节内容选自高中《信息技术基础》(必修)第五章第三小节《图像的类型与格式》,在对图像的采集与加工讲解之前,首先就要使学生了解图像的类型以及各种对应的格式,因此,将图片的类型与格式作为重点。通过演示对比图片、浏览各类型图片的格式,使学生对图像的格式有所掌握,为后面的课程做好铺垫工作。 其次是学情分析,学生通过以前知识的积累,对计算机已不陌生了,所以在激发学生学习兴趣的同时,也要的培养学生良好的学习习惯。图像对于大多人来说都比较熟悉,但很少能更深层次的理解图像的表现意义及表现特点,学生对于常见的图像类型与格式只有初识。 根据教材的内容及学生的情况,我制定了三个教学目标: 1、知识与技能:了解图像的类型与格式 2、过程与方法:通过绘制不同颜色文件,并以不同格式保存,使学生能够更好的 了解图像的格式 3、情感态度与价值观:培养学生对图像认识的基本理念 为了达到我的教学目标,我制定了本节的重难点。重点:了解图像的类型与格式,难点:掌握常见图像格式 为了让学生掌握重点学懂难点,我主要使用讲授法和演示法进行教学,通过创设情境引入主题,再通过讲解、演示进行操作引导,与学生共同讨论等教学方法进行教学。在上完新课后,我会给学生做一个课堂小结,让学生明白上课的主要内容和知道重点以及该掌握的知识。 课前准备: 软件环境(教学资源):制作本节课的课件,准备好本节课要用的相关材料。 硬件环境:多媒体网络电子教室 上课部分 情境引入 1、展示图片 师:同学们看看这幅风景图,漂亮么? 生:…… 师:这位美女大家认识吧?

(整理)matlab图像类型与彩色模型的转换.

第六讲图像类型与 彩色模型的转换 【目录】 一、图像类型的转换 (1) 1、真彩图像→索引图像 (3) 2、索引图像→真彩图像 (3) 3、真彩图像→灰度图像 (4) 4、真彩图像→二值图像 (4) 5、索引图像→灰度图像 (5) 6、灰度图像→索引图像 (6) 7、灰度图像→二值图像 (7) 8、索引图像→二值图像 (8) 9、数据矩阵→灰度图像 (9) 二、彩色模型的转换 (9) 1、图像的彩色模型 (10) 2、彩色转换函数 (10) 三、纹理映射 (13) 【正文】 一、图像类型的转换

1、真彩图像→索引图像 【格式】X =d i t h e r (R G B ,m a p ) 【说明】按指定的颜色表m a p 通过颜色抖动实现转换 【输入】R G B 可以是d o u b l e 或u i n t 8类型 【输出】X 超过256色则为d o u b l e 类型,否则输出为u i n t 8型 【例】 C L F ,R G B =i m r e a d ('f l o w e r s .t i f '); 100 200 300 400 500 50100150200250300350 100 200 300 400 500 50100150200250300350 【输出】R G B 为d o u b l e 类型 【例】 C L F ,l o a d t r e e s ; R G B =i n d 2r g b (X ,m a p ); s u b p l o t (1,2,1);s u b i m a g e (X ,m a p );t i t l e ('索引图') s u b p l o t (1,2,2);s u b i m a g e (R G B );t i t l e ('真彩图')

简述图像几何变换的类型与方法

简述图像几何变换的类型和方法 数字图像处理,就是利用数字计算机或则其他数字硬件,对从图像信息转换而得到的电信号进行某些数学运算,以提高图像的实用性。例如从卫星图片中提取目标物的特征参数,三维立体断层图像的重建等。总的来说,数字图像处理包括点运算、几何处理、图像增强、图像复原、图像形态学处理、图像编码、图像重建、模式识别等。目前数字图像处理的应用越来越广泛,已经渗透到工业、医疗保健、航空航天、军事等各个领域,在国民经济中发挥越来越大的作用。 图像的几何变换,通常包括图像的平移、图像的镜像变换、图像的转置、图像的缩放和图像的旋转等。 程序基本框架如下: 1 图像的平移 图像的平移是几何变换中最简单的变换之一。

1.1理论基础 图像平移就是将图像中所有的点都按照指定的平移量水平、垂直移动。设(x0,y0)为原图像上的一点,图像水平平移量为tx ,垂直平移量为ty ,则平移后点(x0,y0)坐标将变为(x1,y1)。 显然(x0,y0)和(x1,y1)的关系如下: ?? ?+= += ty y y tx x x 0101 用矩阵表示如下: ???? ????????????????=??????????1001001001111y x ty tx y x 对该矩阵求逆,可以得到逆变换: ?? ?? ? ???????????????--=??????????1111001001100y x ty tx y x 即???-=-= ty y y tx x x 1010 这样,平移后的图像上的每一点都可以在原图像中找到对应的点。例如,对于新图中的(0,0)像素,代入上面的方程组,可以求出对应原图中的像素(-tx ,-ty )。如果tx 或ty 大于0,则(- tx ,- ty )不在原图中。对于不在原图中的点,可以直接将它的像素值统一设置为0或则255(对于灰度图就是黑色或白色)。同样,若有点不在原图中,也就说明原图中有点被移出显示区域。如果不想丢失被移出的部分图像,可以将新生成的图像宽度扩大|tx |,高度扩大| ty |。

matlab数据类型及转换

Matlab中有15种基本数据类型,主要是整型、浮点、逻辑、字符、日期和时间、结构数组、单元格数组以及函数句柄等。 1、整型:(int8;uint8;int16;uint16;int32;uint32;int64;uint64)通过intmax(class)和intmin(class) 函数返回该类整型的最大值和最小值,例如intmax(‘int8’)=127; 2、浮点:(single;double) 浮点数:REALMAX('double')和REALMAX('single')分别返回双精度浮点和单精度浮点的最大值,REALMIN('double')和REALMIN ('single')分别返回双精度浮点和单精度浮点的最小值。 3、逻辑:(logical) Logical:下例是逻辑索引在矩阵操作中的应用,将5*5矩阵中大于0.5的元素设定为0: A = rand(5); A(A>0.5)=0; 4、字符:(char) Matlab中的输入字符需使用单引号。字符串存储为字符数组,每个元素占用一个ASCII字符。如日期字符:DateString=’9/16/2001’ 实际上是一个1行9列向量。构成矩阵或向量的行字符串长度必须相同。可以使用char函数构建字符数组,使用strcat函数连接字符。 例如,命令name = ['abc' ; 'abcd'] 将触发错误警告,因为两个字符串的长度不等,此时可以通过空字符凑齐如:name = ['abc ' ; 'abcd'],更简单的办法是使用char函数:char(‘abc’,’abcd’),Matlab自动填充空字符以使长度相等,因此字符串矩阵的列纬总是等于最长字符串的字符数. 例如size(char(‘abc’,’abcd’))返回结果[2,4],即字符串’abc’实际存在的是’abc ’,此时如需提取矩阵中的某一字符元素,需要使用deblank函数移除空格如name =char(‘abc’,’abcd’); deblank(name(1,:))。 此外,Matlab同时提供一种更灵活的单元格数组方法,使用函数cellstr可以将字符串数组转换为单元格数组: data= char(‘abc’,’abcd’) length(data(1,:)) ->? 4 cdata=cellstr(data) length(cdata{1}) ->?3 常用的字符操作函数 blanks(n) 返回n个空字符 deblank(s) 移除字符串尾部包含的空字符 (string) 将字符串作为命令执行 findstr(s1,s2) 搜索字符串 ischar(s) 判断是否字符串 isletter(s) 判断是否字母 lower(s) 转换小写 upper(s) 转换大写 strcmp(s1,s2) 比较字符串是否相同 strncmp(s1,s2,n) 比较字符串中的前n个字符是否相同 strrep(s1,s2,s3) 将s1中的字符s2替换为s3 5、日期和时间 Matlab提供三种日期格式:日期字符串如’1996-10-02’,日期序列数如729300(0000年1月1日为1)以及日期向量如1996 10 2 0 0 0,依次为年月日时分秒。 常用的日期操作函数

常用图片格式分类

常见的图像文件格式又有哪些呢? 常见的图像文件格式又有哪些呢? 一、BMP格式 BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP位图格式理所当然地被广泛应用。这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点--占用磁盘空间过大。所以,目前BMP在单机上比较流行。 二、GIF格式 GIF是英文Graphics Interchange Format(图形交换格式)的缩写。顾名思义,这种格式是用来交换图片的。事实上也是如此,上世纪80年代,美国一家著名的在线信息服务机构CompuServe针对当时网络传输带宽的限制,开发出了这种GIF图像格式。 GIF格式的特点是压缩比高,磁盘空间占用较少,所以这种图像格式迅速得到了广泛的应用。最初的GIF只是简单地用来存储单幅静止图像(称为GIF87a),后来随着技术发展,可以同时存储若干幅静止图象进而形成连续的动画,使之成为当时支持2D动画为数不多的格式之一(称为GIF89a),而在GIF89a图像中可指定透明区域,使图像具有非同一般的显示效果,这更使GIF 风光十足。目前Internet上大量采用的彩色动画文件多为这种格式的文件,也称为GIF89a格式 文件。 此外,考虑到网络传输中的实际情况,GIF图像格式还增加了渐显方式,也就是说,在图像传输过程中,用户可以先看到图像的大致轮廓,然后随着传输过程的继续而逐步看清图像中的细节部分,从而适应了用户的"从朦胧到清楚"的观赏心理。目前Internet上大量采用的彩色动画文 件多为这种格式的文件。 但GIF有个小小的缺点,即不能存储超过256色的图像。尽管如此,这种格式仍在网络上大行其道应用,这和GIF图像文件短小、下载速度快、可用许多具有同样大小的图像文件组成动画等 优势是分不开的。 三、JPEG格式 JPEG也是常见的一种图像格式,它由联合照片专家组(Joint Photographic Experts Group)开发并以命名为"ISO 10918-1",JPEG仅仅是一种俗称而已。JPEG文件的扩展名为.jpg或.jpeg,其压缩技术十分先进,它用有损压缩方式去除冗余的图像和彩色数据,获取得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像质量。 同时JPEG还是一种很灵活的格式,具有调节图像质量的功能,允许你用不同的压缩比例对这

matlab图像数据类型转换

uint 8:无符号的8位(8bit)整型数据(unit 都是存储型) int :整型数据 1、在MATLAB中,数值一般都采用double型(64位)存储和运算. 2、为了节省存储空间,MATLAB为图像提供了特殊的数据类型uint8(8位无符号整数),以此方式存储的图像称为8位型像。 3、函数image能够直接显示8位图像,但8位型数据和double型数据在image中意义不一样, 4、对于索引图像,数据矩阵中的值指定该像素的颜色种类在色图矩阵中的行数。当数据矩阵中的值为0时,表示用色图矩阵中第一行表示的颜色绘制;当数据矩阵中的值为1时,表示用色图矩阵中的第二行表示的颜色绘制该像素,数据与色图矩阵中的行数总是相差1。所以,索引图像double型和uint8型在显示方法上没有什么不同,只是8位数据矩阵的值和颜色种类之间有一个偏差1。调用格式均为image(x); colormap(map); 5、对于灰度图像,uint8表示范围[0,255],double型表示范围[0,1]。可见,double型和uint8型灰度图像不一样,二者转换格式为: I8=uint8 (round (I64*255)); !!double转换成uint 8 I64=double (I8)/255; !!!uint转换成double 反之,imread根据文件中的图像种类作不同的处理。当文件中的图像为灰度图像时,imread 把图像存入一个8位矩阵中,把色图矩阵转换为双精度矩阵,矩阵中每个元素值在[0,1]内;当为RGB图像时,imread把数据存入到一个8位RGB矩阵中。!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! MATLAB中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double 因此 I2=im2double(I1) :把图像数组I1转换成double精度类型; 如果不转换,在对uint8进行加减时会产生溢出 图像数据类型转换函数 默认情况下,matlab将图象中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。 im2double():将图象数组转换成double精度类型 im2uint8():将图象数组转换成unit8类型 im2uint16():将图象数组转换成unit16类型 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 默认情况下,matlab将图像中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。 但是,问题的真正的解释其实应该是这样的。首先是在数据类型转换时候uint8和im2uint8的区别,uint的操作仅仅是将一个double类型的小数点后面的部分去掉;但是im2uint8是将输入中所有小于0的数设置为0,而将输入中所有大于1的数值设置为255,再将所有其他值乘以255。 图像数据在进行计算前要转化为double类型的,这样可以保证图像数据运算的精

matlab《数字图像处理》第4章-图像类型与彩色模型的转换--附要点

第四章 图像类型与 彩色模型的转换(附) 【目录】 一、图像类型的转换 (1) 1、真彩图像→索引图像 .................................... 2 2、索引图像→真彩图像 .................................... 3 3、真彩图像→灰度图像 .................................... 3 4、真彩图像→二值图像 .................................... 3 5、索引图像→灰度图像 .................................... 4 6、灰度图像→索引图像 .................................... 4 7、灰度图像→二值图像 .................................... 5 8、索引图像→二值图像 .................................... 6 9、数据矩阵→灰度图像 (6) 二、彩色模型的转换 (6) 1、图像的彩色模型 ........................................ 6 2、彩色转换函数 (7) 三、纹理映射 (9) 【正文】 一、图像类型的转换

1、真彩图像→索引图像 【格式】X=d i t h e r(R G B,m a p) 【说明】按指定的颜色表m a p通过颜色抖动实现转换 颜色抖动即改变像素点的颜色,使像素颜色近似于色图的颜色,从而以空间分辨率来换取颜色分辨率。 【输入】R G B可以是d o u b l e、u i n t16或u i n t8类型 【输出】X超过256色则为u i n t16类型,否则输出为u i n t8型 【例】 C L F

photoshop常用图像文件格式

常用图像文件格式 1.PSD格式 PSD格式是Photoshop的专用格式,能保存图像数据的每一个细小部分,包括像素信息、图层信息、通道信息、蒙版信息、色彩模式信息,所以PSD格式的文件较大。而其中的一些内容在转存为其他格式时将会丢失,并且在储存为其他格式的文件时,有时会合并图像中的各图层及附加的蒙版信息,当再次编辑时会产生不少麻烦。因此,最好再备份一个PSD 格式的文件后再进行格式转换。 2.TIFF格式 TIFF格式是一种通用的图像文件格式,是除PSD格式外唯一能存储多个通道的文件格式。几乎所有的扫描仪和多数图像软件都支持该格式。该种格式支持RGB、CMYK、Lab 和灰度等色彩模式,它包含有非压缩方式和LZW压缩方式两种。 3.JPEG格式 JPEG格式也是比较常用的图像格式,压缩比例可大可小,被大多数的图形处理软件所支持。JPEG格式的图像还被广泛应用于网页的制作。该格式还支持CMYK、RGB和灰度色彩模式,但不支持Alpha通道。 4.BMP格式 BMP格式是标准的Windows及OS/2的图像文件格式,是Photoshop中最常用的位图格式。此种格式在保存文件时几乎不经过压缩,因此它的文件体积较大,占用的磁盘空间也较大。此种存储格式支持RGB、灰度、索引、位图等色彩模式,但不支持Alpha通道。它是Windows环境下最不容易出错的文件保存格式。 5.GIF格式 GIF格式是由CompuServe公司制定的,能保存背景透明化的图像形式,但只能处理256种色彩,常用于网络传输,其传输速度要比其他格式的文件快很多,并且可以将多张图像存储为一个文件形成动画效果。 6.PNG格式 PNG格式是CompuServe公司开发出来的格式,广泛应用于网络图像的编辑。它不同于GIF格式图像,除了能保存256色,还可以保存24位的真彩色图像,具有支持透明背景和消除锯齿边缘的功能,可在不失真的情况下进行压缩保存图像。在不久将来,PNG格式将会是未来网页中使用的一种标准图像格式。 PNG格式文件在RGB和灰度模式下支持Alpha通道,但是在索引颜色和位图模式下,不支持Alpha通道。 7.EPS格式 EPS格式为压缩的PostScript格式,可用于绘图或者排版,它最大的优点是可以在排版软件中以低分辨率预览,打印或者出胶片时以高分辨率输出,可以达到效果和图像输出质量两不耽误。EPS格式支持Photoshop里所有的颜色模式,其中在位图模式下还可以支持透明,并可以用来存储点阵图和向量图形。但不支持Alpha通道。 8.PDF格式 PDF格式是Adobe公司开发的Windows,MAC OS,UNIX和DOS系统的一种电子出版软件的文档格式。该格式源于PostScript Level2语言,因此可以覆盖矢量式图像和点阵式图像,且支持超链接。此文件是由Adobe Acrobat软件生成的文件格式,该格式文件可以存储多页信息,包含图形,文档的查找和导航功能。因此在使用该软件时不需要排版就可以获得图文混排的版面。由于该格式支持超文本链接,所以是网络下载经常使用的文件。

(整理)MATLAB图像显示与格式转换.

第五讲M A T L A B可视化(三) 图像显示 M a t l a b进行图像处理的步骤如下: ↓ ↓ ↓↓ 【目录】 一、图像文件格式 (2) 1、调色板 (2) 2、图像类型 (2) 3、图像文件格式 (3) 二、读图像和图像信息 (3) 1、读取图像 (3) 2、读取图像信息 (4) 三、图像类别与数据格式 (6) 四、图像显示 (8) 1、i m s h o w(I,n) (8) 2、i m s h o w(I,[l o w,h i g h]) (9) 3、i m s h o w(B W) (10) 4、i m s h o w(X,M A P) (14) 5、i m s h o w(R G B) (15) 6、i m s h o w f i l e n a m e (16)

7、s u b i m a g e (17) 五、保存图像 (18) 1、i m w r i t e函数 (18) 六、图像数据格式转换 (18) 1、索引图像 (19) 2、灰度图像 (19) 3、真彩色图像 (19) 4、二值图像 (20) 【正文】 一、图像文件格式 1、调色板 调色板是包含不同颜色的颜色表,每种颜色以红、绿、蓝三种颜色的组合来表示,图像的每一个像素对应一个数字,而该数字对应调色板中的一种颜色。 调色板的单元个数是与图像的颜色数相对应的,256色图像的调色板就有256个单元。 真彩图像的每个像素直接用R、G、B三个字节来表示颜色,因此不需要调色板。 2、图像类型

3、图像文件格式 二、读图像和图像信息 1、读取图像

函数i m r e a d可以从任何M a t l a b支持的图像文件格式中,以任意位深度读取一幅图像。格式为: [X,M A P]=i m r e a d(F I L E N A M E,'F M T'),其中: F I L E N A M E-为需要读入的图像文件名称,F M T-为图像格式。 【例】图像读取演示 [X1,M A P1]=i m r e a d('演示图像-1位黑白.t i f'); [X2,M A P2]=i m r e a d('演示图像-8位灰度.t i f'); [X3,M A P3]=i m r e a d('演示图像-256色.t i f'); [X4,M A P4]=i m r e a d('演示图像-16位灰度.t i f'); [X5,M A P5]=i m r e a d('演示图像-24位色.t i f'); [X6,M A P6]=i m r e a d('演示图像-48位色.t i f'); w h o s N a m e S i z e B y t e s C l a s s M A P10x00d o u b l e a r r a y M A P20x00d o u b l e a r r a y M A P3256x36144d o u b l e a r r a y M A P40x00d o u b l e a r r a y M A P50x00d o u b l e a r r a y M A P60x00d o u b l e a r r a y X1427x427182329l o g i c a l a r r a y X2427x427182329u i n t8a r r a y X3427x427182329u i n t8a r r a y X4427x427364658u i n t16a r r a y X5427x427x3546987u i n t8a r r a y X6427x427x31093974u i n t16a r r a y G r a n d t o t a l i s1824058e l e m e n t s u s i n g2558750b y t e s 2、读取图像信息

Java 图片处理 格式转换

Java 图片处理(包括 Jmagick 的应用) 图片处理( 的应用)
作者: 佚名, 出处:IT 专家网,
2010-10-29 08:30
责任编辑: 谢妍妍,
近期有使用到图片的压缩处理,由于在之前用 Java 处理时,在低像素的情况下, Java 处理的效果确实很差,然后尝试了用网上推荐的免费开源的第三方软件,利用 Java 的 jni 调用 dll 文件进行处理,效果还可以。在此记录下,方便以后继续积累。
近期有使用到图片的压缩处理, 由于在之前用 Java 处理时, 在低像素的情况下, Java 处理的效果确实很差,然后尝试了用网上推荐的免费开源的第三方软件,利用 Java 的 jni 调用 dll 文件进行处理,效果还可以。在此记录下,方便以后继续积累。
1、纯 Java 类处理图片代码
Java 代码
以下是代码片段: 以下是代码片段: /** * 转换图片大小,不变形 * * @param img * 图片文件 * @param width * 图片宽 * @param height * 图片高 */ public static void changeImge(File img, int width, int height) { try { Image image = ImageIO.read(img); //图片尺寸的大小处理, 如果长宽都小于规定大小, 则返回, 如果有一个大于规定大小, 则等比例缩放 int srcH = image.getHeight(null); int srcW = image.getWidth(null); if (srcH <= height && srcW <= width) { return;

VC++中的图像类型转换--使用开源CxImage类库

VC++中的图像类型转换--使用开源CxImage类库 转自https://www.doczj.com/doc/112728377.html,/hejianhua/archive/2009/02/25/3934704.aspx 一、CxImage类库简介 这只是翻译了CxImage开源项目主页上的部分简介及简单使用。 CxImage类库是一个优秀的图像操作类库。它可以快捷地存取、显示、转换各种图像。有的读者可能说,有那么多优秀的图形库,如OpenIL,FreeImage,PaintLib等等,它们可谓是功能强大,齐全,没必要用其它的类库。但我要说,这些类库基本上没有免费的,使用这些类库,你要被这样那样的许可协议所束缚。在这点上,CxImage类库是完全免费的。另外,在使用上述类库时,你会遇到重重麻烦。因为它们大部分是平台无关的,且用C语言写成,有的还夹杂着基本的C++ wrapper和成堆德编译选项的声明需要你去处理。而CxImage类库在这方面做得很好。还有让我最看好的,就是作者完全公开了源代码。相对于那些封装好的图形库和GDI+来说,这一点使我们可以进一步学习各种编解码技术,而不再浮于各种技术的表面。 CxImage是一个可以用于MFC的C++类,可以打开,保存,显示,转换各种格式的图像文件,比如BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K 等格式的文件。可以实现BMP<->JPG,PNG <>TIFF格式等等的转换。既可以实现图像文件的类型转换,也可以实现在内存图像数据的类型转换,并且使用很方便。 它的作者是: Davide Pizzolato ,主页: http://www.xdp.it/ 首先,到https://www.doczj.com/doc/112728377.html,/bitmap/CXImage.asp下载它的源文件和Demo例子. 注: 在Codeproject下载这个类,你得先注册一下,因为这个类可是含金量比较高的,下载量比较大的,当然你也会很高兴成为CodeProject的一名成员的,她不收你的费.授权: License The class CxImage is free; as for the TIFF, JPEG, PNG and ZLIB libraries : "If you use this source code in a product, acknowledgment is not required but would be appreciated." CxImage is open source and licensed under the zlib license . In a nutshell, this means that you can use the code however you wish, as long as you don't claim it as your own. 由于很多人上codeproject的时候,老是上不去,所以,你也可以去这个类库的作者 --Davide Pizzolato的主页去下载

实验二、图像处理和图像文件格式的转换

实验二图像处理和图像文件格式转换 图形图像作为一种视觉媒体,很久以前就已成为人类信息传输、思想表达的重要方式之一。计算机图形技术实际上是绘画技术与计算机技术相结合而形成的。在计算机出现以前,图像处理主要是依靠光学、照相、像片处理和视频信号处理等模拟的处理。随着多媒体计算机的产生与发展,数字图像代替了传统的模拟图像技术,形成了独立的“数字图像处理技术”。多媒体技术借助数字图像处理技术得到迅猛发展,同时又为数字图像处理技术的应用开拓了更为广阔的前景。 图像又有静态和动态之分,在此我们主要介绍静态图像处理。用于静态图像处理的软件有很多,常见的有Photoshop、PhotoStyler、PaintBrush、Corel Draw等等。其中Photoshop以其直观的界面,全面的功能成为最流行的图像处理软件,是我们学习的首选软件。 一、实验目的和要求 1.学会使用PHOTOWORKS进行简单的照片处理。 2.学会使用PHOTOSHOP的以下功能。 1)用选择工具等选取工具选取图像区域 2)学会运用图层选项 3)学会制作立体效果,添加阴影 4)掌握制作艺术字的途径和方法 5)了解如何存储图像并将其压缩为所需格式。 二、PHOTOWORK预备知识 1.载入文件: PHOTOWORKS 的运行界面如下。 使用“打开文件”或“打开目录”命令,打开需要处理的图片

2.调整尺寸 调整长轴的长度(建议800象素或1024象素),图片会按比例缩小成设置的大小 3.调整输出质量,将画质设置成60%~80%不等,文件大小会发生变化

三、PHOTOSHOP预备知识 1.Photoshop的窗口组成 Photoshop的窗口由标题栏、菜单栏、工具箱、工作窗口、控制面板、状态栏等六部分组成,如图2.1所示。 工具箱中存放着各种编辑工具,使用方便。控制面板的主要作用是辅助工具栏,更改工具的设置。一些对图层、通道、历史纪录的操作也要在此完成。在菜单栏里的窗口选项中可以设置此栏中各项的显示与否,也可用鼠标拖动控制面板中的选项,按自己的习惯组合控制面板。状态栏则是用来显示当前图像的有关状态及一些简要说明和提示。 图2.1 Photoshop的窗口 2.工具箱的使用 Photoshop的基本工具存放在工具箱中,一般置于Photoshop界面的左侧。当工具的图标右

最新matlab图像类型与彩色模型的转换

m a t l a b图像类型与彩色模型的转换

仅供学习与交流,如有侵权请联系网站删除 谢谢13 第六讲 图像类型与 彩色模型的转换 【目录】 ................................................. .......................................................................................................................................................... 2 1、真彩图像→索引图像 .. (2) 2、索引图像→真彩图像 ........................................................................................................ 3 3、真彩图像→灰度图像 ........................................................................................................ 4 4、真彩图像→二值图像 ........................................................................................................ 4 5、索引图像→灰度图像 ........................................................................................................ 4 6、灰度图像→索引图像 ........................................................................................................ 5 7、灰度图像→二值图像 ........................................................................................................ 6 8、索引图像→二值图像 ........................................................................................................ 7 9、数据矩阵→灰度图像 ........................................................................................................ 8 二、彩色模型的转换 ................................................................................................................... 8 1、图像的彩色模型 ................................................................................................................ 8 2、彩色转换函数 .................................................................................................................... 9 三、纹理映射 . (11)

图像格式转换实验报告

实验1 图像格式转换实验报告 学 号:12224506 姓 名:陈振辉 班 级:5班 一、实验目的 掌握两种以上图像的格式,重点掌握BMP 图像格式。 二、实验原理: 1、JPEG 文件的解码过程。 敷设技于管路护层防含线槽试以正常杂设方案以卷技术地缩小进行自动作,

①.读入文件的相关信息 按照上述的JPEG 文件数据存储方式,把要解码的文件的相关信息一一读出,为接下来的解码工作做好准备。参考方法是,设计一系列的结构体对应各个标记,并存储标记内表示的信息。其中图像长宽、多个量化表和哈夫曼表、水平/垂直采样因子等多项信息比较重 要。以下给出读取过程中的两个问题。 1)整个文件的大体结构 JFIF 格式的JPEG 文件(*.jpg)的一般顺序为: SOI(0xFFD8)APP0(0xFFE0)[APPn(0xFFEn)]可选 DQT(0xFFDB)SOF0(0xFFC0)DHT(0xFFC4)SOS(0xFFDA)压缩数据EOI(0xFFD9)2)字的高低位问题 JPEG 文件格式中,一个字(16位)的存储使用的是 Motorola 格式, 而不是 Intel 格式。 也就是说, 一个字的高字节(高8位)在数据流的前面, 低字节(低8位)在数据流的后面,与平时习惯的Intel 格式不一样。. 3)读出哈夫曼表数据 在标记段DHT 内,包含了一个或者多个的哈夫曼表。 不同位数的码字数量JPEG 文件的哈夫曼编码只能是1~16位。这个字段的16个字节分别表示1~16位的编码码字在哈 夫曼树中的个数。编码内容这个字段记录了哈夫曼树中各个叶子结点的权。所以,上一字段(不同位数的码字数量)的16个数值之和就应该是本字段的长度,也就是哈夫曼树中叶 子结点个数。 4)建立哈夫曼树 读出哈夫曼表的数据后,就要建立哈夫曼树。 ②.初步了解图像数据流的结构 a) 在图片像素数据流中,信息可以被分为一段接一段的最小编码单元(Minimum CodedUnit ,MCU )数据流。所谓MCU ,是图像中一个正方矩阵像素的数据。矩阵的大小 是这样确定的:查阅标记SOF0,可以得到图像不同颜色分量的采样因子,即Y 、Cr 、Cb 三个分量各自的水平采样因子和垂直采样因子。大多图片的采样因子为4:1:1或 1:1:1。其中,4:1:1即(2*2):(1*1):(1*1));1:1:1即(1*1):(1*1): (1*1)。记三个分量中水平采样因子最大值为Hmax ,垂直采样因子最大值为Vmax ,那么 单个MCU 矩阵的宽就是Hmax*8像素,高就是Vmax*8像素。 、管路敷设技术通过管线不仅可以解决吊顶层配置不规范高中资料试卷问题,而且可保障各类管路习题到位。在管路敷设过程中,要加强看护关于管路高中资料试卷连接管口处理高中资料试卷弯扁度固定盒位置保护层防腐跨接地线弯曲半径标高等,要求技术交底。管线敷设技术包含线槽、管架等多项方式,为解决高中语文电气课件中管壁薄、接口不严等问题,合理利用管线敷设技术。线缆敷设原则:在分线盒处,当不同电压回路交叉时,应采用金属隔板进行隔开处理;同一线槽内,强电回路须同时切断习题电源,线缆敷设完毕,要进行检查和检测处理。、电气课件中调试对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行 高中资料试卷调整试验;通电检查所有设备高中资料试卷相互作用与相互关系,根据生产工艺高中资料试卷要求,对电气设备进行空载与带负荷下高中资料试卷调控试验;对设备进行调整使其在正常工况下与过度工作下都可以正常工作;对于继电保护进行整核对定值,审核与校对图纸,编写复杂设备与装置高中资料试卷调试方案,编写重要设备高中资料试卷试验方案以及系统启动方案;对整套启动过程中高中资料试卷电气设备进行调试工作并且进行过关运行高中资料试卷技术指导。对于调试过程中高中资料试卷技术问题,作为调试人员,需要在事前掌握图纸资料、设备制造厂家出具高中资料试卷试验报告与相关技术资料,并且了解现场设备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。 、电气设备调试高中资料试卷技术电力保护装置调试技术,电力保护高中资料试卷配置技术是指机组在进行继电保护高中资料试卷总体配置时,需要在最大限度内来确保机组高中资料试卷安全,并且尽可能地缩小故障高中资料试卷破坏范围,或者对某些异常高中资料试卷工况进行自动处理,尤其要避免错误高中资料试卷保护装置动作,并且拒绝动作,来避免不必要高中资料试卷突然停机。因此,电力高中资料试卷保护装置调试技术,要求电力保护装置做到准确灵活。对于差动保护装置高中资料试卷调试技术是指发电机一变压器组在发生内部故障时,需要进行外部电源高中资料试卷切除从而采用高中资料试卷主要保护装置。

图片素材的格式转化与分类

图片素材的格式转化与分类 矢量素材各个格式转换 AI格式和PS格式互换 现在我们来说一下Illustrator与Photoshop 的软件转换格式运用同时期待高手指点完善内容 AI格式转换PSD分层格式 AI文件想导出完全分层还是一个图层,取决于你设置先用AI 软件打开文件 2.选择文件菜单-导出-选择PSD格式 3.保存选择导出选项设置几个关键选项:写入图层,最大可编辑性,消除锯齿等关键选项 4.用PS软件打开这个PSD格式文件图中的编组,就是图层了,因为你勾选了最大可编辑性,所以每一个对象都成为了图层,你可以根据情况进行合并,以减少文件不必要的增大.

PS抠图文件导入到AI里面背景为透明技法 先用PS抠出图像使其文件只剩下抠出图像这一个图层 将其模式改为RGB模式 保存类型为PNG格式 使用AI软件将此文件导入可以看到PS软件抠出的图像独立出现 背景为透明的 AI格式与CDR格式互换 AI格式与CDR格式互换 一.打开AI格式文件转换另存为EPS格式,版本选8.0或以下版本 打开CDR软件导入上个EPS格式文件再保存CDR8.0或

8.0BIDI版本 校对CDR文件和原AI文件是否不同 二.1、CD12可以打开AI10及以下版本的文件.[效果和网格填色除外] 2、CD9可以打开AI7及以下版本的文件. [效果和网格填色除外] 3、AI10文件和以下版本的文件最好在AI10软件保存,高版本导出的AI10可能在CD中不兼容. 总结得出,AI11及以上版本的AI文件,导出成AI10及以下版本即可在CD12或9中打开.能支持的功能有填色、渐变,蒙板将自动删除蒙板以外的物件、图案填充将被打散.效果和网格还未偿试到更好的导出方法. 4、把AI转换成PSD格式,然后再导入CD中. 5、CD X3可以打开AI CS以下的AI文件及EPS文件,效果和渐变除外!

MATLAB与C#数据类型转换

以下是本人编程中总结的一些思路,拿出来与大家共享。不对之处,请留言说明。 版本:Matlab R2007b,Visual Studio2005 C++/C#数据类型到M类型 此方向转换十分简单。 如果C++/C#数据不是数组, ?直接将值传递给已经初始化的MWArray数组中的成员 ?直接将数据类型赋值给已经初始化的MWNumericArray变量。 ?直接将字符串类赋值给已经初始化的MWCharArray变量。 如果是数组类型: ?直接赋值给MWNumericArray变量; ?赋值给MWArray变量,则在前面加上类型转换如:(MWNumericArray)进行强制转换。 总之,MWArray是总类型,其它的以MW开头,以Array结尾的变量类型都可以直接对它进行赋值或取值。 M类型到C++/C#数据类型 MWArray M类型,它是M文件的编译后内部的标准类型,一切C++/C#类型都要最终转换成此类型,方可作为参数调用M语言函数。 MWCharArray M的字符串类型,使用它可以将M中的字符类型转换成C++/C#的字符串类型。 MWNumericArray MWNumericArray是MWArray与C#等语言的转换中间类型。 常用的转换函数: ①public Array ToArray(MWArrayComponent component); 将M类型转换成C#的Array类型,然后可以直接转换成其它类型的数组。 ②public byte ToScalarByte();

将M类型转换成C#的字节类型; ③public double ToScalarDouble(); 将M类型转换成C#的双精度类型; double temp=((MWNumericArray)(mwArgout[0])).ToScalarDouble(); ④public float ToScalarFloat(); 将M类型转换成C#的单精度类型; ⑤public int ToScalarInteger(); 将M类型转换成C#的整型类型; ⑥public long ToScalarLong(); 将M类型转换成C#的长整C/C++/C#数据型类型; ⑦public short ToScalarShort(); 将M类型转换成C#的短整型类型; ⑧public override string ToString(); 将M类型转换成C#的字符串类型;string arror=mwArgout[2].ToString(); ⑨public Array ToVector(MWArrayComponent component); 将M类型转换成C#的Array类型,然后可以直接转换成其它类型的数组。 下面使用调试过的代码示例表述①⑨两个函数的区别: ① double[,]Temp1=new double[1,3]; Temp1=(double[,])((MWNumericArray)mwArgout[1]).ToArray(MWArrayComponent.Real);⑨ double[]s1=new double[2]; s1=(double[])((MWNumericArray)mwArgout[1]).ToVector(MWArrayComponent.Real);

相关主题
文本预览
相关文档 最新文档