|||
之前尝试做一个有二维颜色表的图(http://blog.sciencenet.cn/home.php?mod=space&uid=117333&do=blog&id=631444 )。虽然可以画多个颜色表拼成一个二维颜色表,但是图中还是只能有256种颜色表。这受到IDL的LOADCT子程序的限制,在用TVIMAGE画图的时候,要用LOADCT载入颜色表。
原则上RGB颜色是可以得到(2^8)^3=2^{24}种颜色的,只要突破了LOADCT的限制就可以使用所有这些限制了。研究了半天,发现类似TVIMAGE这种方便的画图工具都没有绕开LOADCT,所以似乎没有什么办法。
但是我隐约记得IDL是可以读入jpg图像处理的,jpg图像不可能只有256种颜色。查了一下,最简单的TV函数就可以将一个3times n times n的数组显示为一幅彩色图像,其中RGB每个分量都是ntimes n大小的数组,其中的数值是0-255的整数,分别表示每个像素上的R、G、B值。所以只要能计算出每个像素上的R、G、B值就可以用TV函数显示了,这样就可以突破256种颜色的限制,可以使用自己定义的大颜色表。所需要克服的就是TV函数控制图像位置、大小不是很方便的困难。这些困难不一定容易解决,但已经不是原则性的困难了。
2013年7月8日补记:
如果实现了TV函数控制图像位置,那么颜色表就可以突破了,因为可以对RGB三个颜色通道的数据进行处理。这个可以查阅TV函数的帮助。具体实现方法见附件。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-26 03:17
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社