如何在散景中显示TIFF图像?

时间:2018-06-25 02:40:47

标签: image rgb bokeh imshow

我可以将TIFF图像作为NumPy数组加载到内存中,其中每个像素由3元素RGB向量表示:

.projects {
  height: 100%;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}

例如,上面的arr可能具有形状(2469,2858,3)。

Bokeh docs之后,在散景中,像素是一维数字,相对于颜色图进行解释。

如何将我的3D RGB TIFF数组映射到1D Bokeh色彩映射索引数组,我应该使用哪种色彩映射?

This post建议我应该编写一个称为RGBAColorMapper的东西。我该怎么办?

还有一个叫image_rgba的东西,它是一个4D像素,我如何将3D像素转换为4D以使用它?

基本上,我正在寻找与MatPlotLib imshow相同的功能。

1 个答案:

答案 0 :(得分:5)

您可以使用PIL软件包将tiff图像转换为rgba。然后使用image_rgba可以很容易地进行绘制。按照http://www-eng-x.llnl.gov/documents/tests/tiff.html的SO答案,从here下载了tiff文件。

import numpy

from PIL import Image
from bokeh.plotting import figure, show

im = Image.open('a_image.tif')
im = im.convert("RGBA")
# uncomment to compare
#im.show()
imarray = numpy.array(im)

p = figure(x_range=(0,10), y_range=(0,1), width=1000, height=200)

p.image_rgba(image=[imarray], x=0, y=0, dw=10, dh=1)

show(p)

enter image description here