python matplotlib.pyplot imread

时间:2015-05-18 15:48:27

标签: python matplotlib imread

我使用plt.imread阅读大型.tiff图片。 由于尺寸较大,我想只选择要加载的图像的一部分。 我想做点什么:

plt.imread(filename, [s1:s2, r1:r2])

选择两个维度的初始和最终像素。

有办法做到这一点吗?

非常感谢

2 个答案:

答案 0 :(得分:2)

我认为您必须阅读整个图像,之后您可以在对其进行任何处理之前对其进行切片:

else

或者,在一行中:

import matplotlib.pyplot as plt
my_img = plt.imread('my_img.tiff')
my_clipped_img = my_img[s1:s2,r1:r2]

后者的好处是不能创建一个完整大小的数组,而只是你想要的大小。

请记住,s1:s2应该是垂直方向的极限,r1:r2是水平方向。

答案 1 :(得分:0)

只能读取文件的一部分的唯一方法是,如果文件的格式为 ,并且在磁盘上水平(行)和垂直(列)分区。 Hive Hadoop 提供了这样的机制(而 Spark 支持它们)。但是这些用于更多的数据存储,而不用于单个(图像)文件。

所以tmdavison的答案是正确的-也许这可以为为什么提供更好的理解。