一例索引图像转换的问题解决

2020-07-04 02:14朱宁贤
电脑知识与技术 2020年14期
关键词:干扰

朱宁贤

摘要:MATLAB中图像模式间的转换是多媒体教学中非常重要的内容。本文结合索引图像模式与其他模式同时转换时遇到的问题,通过具体的实验过程解析颜色模型转变的基本原理,并利用色图坐标、自定义色图等手段,解决了在索引图像转换对其他类型图像颜色模式转换带来的干扰问题,从而使学生更好地理解索引图像的本质。

关键词:索引模式;色图坐标;干扰;模式转换

中图分类号:TP391 文献标识码:A

文章编号:1009-3044(2020)14-0223-03

1引言

在多媒体技术教学中利用MATLAB进行图像颜色模式转换时,可利用rgb2ind函数完成由真彩图像到索引图像的转变,利用rgb2gray函数完成由真彩图像到灰度图像的转变。单独执行rgb2ind与rgb2gray函数时,获得的图像都是彩色的。但当同时利用两个函数分别进行真彩图像到索引图像和由真彩图像到灰度图像转换时(如图1所示),需要同时显示在一个figure中时:灰度图像能够正常显示,但索引图像却未能显示出正常颜色(如图2所示)。

2问题解决过程探索及效果

结合课堂所讲图像转换原理,分别通过以下三种方式进行了实验:利用figure分别显示、调整程序的执行顺序和使用不同的转换函数,并逐一上机验证,对比实验效果,进而使学生深入理解索引图像的本质与colormap的含义,以图解决上述问题。

2.1 figure的使用

首先,将索引图像和灰度图像分别独立显示在不同的fig-ure中,二者都正常显示,如图3与图4所示,说明程序的转换函数本身是没有任何问题的。

2.2代码顺序的调整

调整图1的代码顺序(先执行灰度、后执行索引,显示顺序不变),如表图5所示代码,运行效果如图6所示。索引图像虽然可以正常显示,但灰度图像颜色变红。

2.3转换函数的调整

改变生成索引图像的函数,利用dither函数产生索引图像(如图7所示)。程序运行后效果图如8所示。灰度图像能够正常显示,但索引图像颜色出现偏差。

2.4实验过程分析

显而易见,上述三种解决途径效果都不理想。

从实验过程中可以看到,每个处理后的图像如果分别显示在不同的figure中,各种效果都可以正常显示;但同时显示在一个figure中时即使改变函数执行顺序、改变转变函数,转换后的图像都存在颜色差异问题。

结合多媒体课程中图像处理原理,从MATLAB转换函数说明中了解到:在MATLAB中,每个figure都有(而且仅有)一个colormap色图,它是用MAP矩阵映射当前图形的色图。MAP实际上是一个mx3的矩阵,每一行的3个值都在0-1之间,分别代表颜色组成的rgb值。在MATLAB中默认自带18种color-map,比如jet(早期版本默认值)、parula(新版本默认值)、季节(Sunlmer,autumn,winter,spring)、温度(hot,c001)、材质(bone,copper)或颜色模式等,不同的数值表征不同的颜色,用于绘制索引图像等种类的伪彩图。

图形对象一般支持两种不同的指定颜色的方法:颜色图(使用索引颜色)和真彩色。颜色图的调色板有限,只能提供由m种颜色组成的调色板,其中m为颜色图的长度;相比之下,真彩色则提供涵盖1600多万种颜色的调色板。由此分析发现:索引图像与其他图像的不同,在一个figure中,索引生成“[TI,map]=rgb2ind(I,128);”后颜色模式与其它的颜色模式相互干扰,也就是colormap被修改的原因。因为索引图像有两个分量,一个是数据矩阵x,一个是彩色映射矩阵map,而rgb2ind函数,需要使用map参数,从而导致了colormap被改变,造成了颜色之间的相互影响。

3实验过程的完善

通过上面的实验过程和对结果的分析,进一步明确了col—ormap的作用和索引图像的成像原理,接下来需要完善具体的实验过程,解决同时对多种图像转换时存在干扰的问题。

3.1色图坐标colormap(ax,…)的使用

色图坐标colormap(ax,…)中的ax,可以设置figure中某个区域的图形colormap,而非当前整个figure。通过利用更改ax属性可控制使用ax对象的外观和行为,为图窗中的每个坐标区定义一个唯一的颜色图colormap。具体来说就是根据caxis取得Cmin和Cmax两个变量(默认值为0和1),画图时自定义数值颜色向量(矩阵)C,比如将Cmax减小,根据色图在Cmin和Cmax之间的比例关系,确定对应的颜色的index。从本质上讲,是把具体的颜色变成colormap中相应的index,换算映射指定的数值颜色向量(矩阵)C,通过将坐标区对象传递给colormap函数,返回特定坐标区的颜色图值。代码如图9所示。

3.2色图编辑器的使用

实验结果显示,仅依靠利用色图坐标处理过后,效果依然难以令人满意。接下来我们可以通过利用可视化的colormap编辑器调整map值来调整图像颜色。具体做法是:在MATLAB的figure窗口中,打开“编辑”菜单,找到“色图编辑器”,如图10所示,通过单击色条,自定义自己的colormap值来调整图像颜色,直到获得满意的图像效果为止。

4结论

本程序在windows7+MATLAB 7中可以執行。如果版本不同,需要注意:第一,从MATLAB R2018版,如果为图窗设置颜色图,则图窗中的坐标区和图将使用相同的颜色图。以前,当设置图窗颜色图时,任何显式设置了颜色图的坐标区或图都不受影响。如果希望Axes对象使用与图窗不同的颜色图,可以在设置图窗颜色图之后设置坐标区颜色图。第二,从MATLABR2014版,默认colormap为parula;在以前的版本中,默认颜色图为jet。

总之,我们通过设置个性化的colormap和ax属性,能够在一定程度上解决多图像颜色模式转变时相互干扰的问题。同时,我们通过分析函数和figure的特点,也进一步加深了学生对图像颜色模式以及转换函数的理解。

猜你喜欢
干扰
“TD-LTE与其他系统间干扰问题”的实践测试
蜂窝网络终端直通通信功率控制研究
大颗粒尿素水分测定干扰原因分析与处理
乙肝治疗别被干扰素“干扰”
科学处置调频广播信号对民航通信干扰实例