大量图像数据定位读取
目前我有一个图像数据,四个波段,长宽都为20000,即总共有20000*20000*4个数据值。而且每个数值的数据类型为浮点型(float类型,4字节)。可以想象如果把这个文件全部读入内存进行处理,基本上是不可行的,一次性读入需要大概要占据6103M内存。目前我要获取的是图像中任意一个多边形内包含的像素值,不知道有什么好的方法,多边形内的像素位置(position)已经知道了,但是怎么快速获取它的值呢,我现在的想法是可以以多边形内的像素建立一个外接矩形,只读取这部分的数据,然后再取出对应位置的像素值,这样可以解决一次读入大数据内存不够的问题,但是如果我要获取的多边形比较多,比如整个图像都被多边形(n个)所覆盖,每个多边形都要这样处理,也就是要读取n次文件,代价是不是也会很大!网上看了一些,有文件映射,内存映射,不是特别明白,望大家给点建议 谢谢啦!
[解决办法]
像素的位置怎么知道的?
所有多边形一起能放进内存么?
图像是文本文件么?(指顺序文件)
[解决办法]
既然都是栅格,可以考虑将文件切分,例如全部切成100*100大小的。
然后用你所说的外包矩形,确定需要加载哪些小文件。依次加载。
[解决办法]
内存不够的话就分割一下一点一点的加入。