我的主管建议使用以下代码从一组40 x 40图像中提取垂直切片并将其绘制为时间序列(24小时),图像存储在数组中图像= FLTARR(no_images,40 ,40)',以及数组UT = FLTARR(no_images)中的相应时间:
PLOT, [0],[0], /NODATA, XRANGE=[0,24], XSTYLE, YRANGE=[-40,40], /YSTYLE
FOR i=0, no_images-1 DO BEGIN
FOR j=0, 39 DO BEGIN
POLYFILL, UT(i)+[0,0,1,1]*2/60.0, (j+[0,1,1,0])*2-40, COL=[work out what colour you want the pixel to be in terms of the value in images(i,20,j) ]
ENDFOR
ENDFOR
每隔2分钟拍摄一次图像。
我理解这里要做的是什么 - 基本上是绘制小矩形来表示图像中的像素。我的问题是COL论证应该是什么?有人能举个例子吗?在测试代码的那一刻,我只是放了一个固定值(例如255),这显然只是给出了一个相同颜色的块。如何获得与像素值对应的不同颜色?
答案 0 :(得分:1)
只需使用:
max_value = max(ut[*, 20, *])
color=images[i, 20, j] / float(max_value) * 255
确保您处于索引颜色,即您已完成:
device, decomposed=0
并使用已使用的LOADCT
或TVLCT
加载您要使用的颜色表。
答案 1 :(得分:1)
如果你有IDL 8.4 +
,你也可以使用新的图形no_images = 100
ut = FINDGEN(100)/100*24
img = bytscl(randomu(seed,no_images,40))
y = FINDGEN(40)
p = PLOT(ut, y, XSTYLE=1, YSTYLE=1, XRANGE=[0,24], YRANGE=[0,40], $
/NODATA, TITLE='My Data',XTITLE='X',YTITLE='Y')
i = IMAGE(img, ut, y, /OVERPLOT, RGB_TABLE=74, ASPECT_RATIO=0.5)
您可以调整ASPECT_RATIO以使图像显得方形或多或少。将RGB_TABLE更改为您喜欢的任何内容都很容易。