Я пытался проверить мои фильтры на растре DEM для распознавания образов, и это всегда приводит к отсутствию последних строк и столбцов (например, 20) . Я пытался с библиотекой PIL, загрузка изображения. Тогда с NumPy. Выход такой же.
Я подумал, что что-то не так с моими циклами, при проверке значений в массиве (просто выбирая пиксели с помощью Identification в ArcCatalog) я понял, что значения пикселей не загружаются в массив.
Итак, просто открываем, помещаем в массив и сохраняем изображение из массива:
a=numpy.array(Image.open(inraster)) #raster is .tif Float32, size 561x253
newIm=Image.new(Im.mode, Im.size)
Image.fromarray(a).save(outraster)
Результатом является вырезание последних строк и столбцов. Извините, не могу опубликовать изображение
Кто-нибудь может помочь понять, почему? И посоветуете какое-нибудь решение?
РЕДАКТИРОВАТЬ:
Итак, мне удалось загрузить небольшие растры в массив с помощью парней, но при увеличении изображения я начинаю получать ошибки. Я предполагаю, что речь идет о пределах ограниченного массива, поэтому массив автоматически преобразуется или что-то в этом роде ... Итак, ex:
Traceback (most recent call last):
File "<pyshell#36>", line 1, in <module>
ima=numpy.array(inDs.GetRasterBand(1).ReadAsArray())
File "C:\Python25\lib\site-packages\osgeo\gdal.py", line 835, in ReadAsArray
buf_xsize, buf_ysize, buf_obj )
File "C:\Python25\lib\site-packages\osgeo\gdal_array.py", line 140, in BandReadAsArray
ar = numpy.reshape(ar, [buf_ysize,buf_xsize])
File "C:\Python25\lib\site-packages\numpy\core\fromnumeric.py", line 108, in reshape
return reshape(newshape, order=order)
ValueError: total size of new array must be unchanged
Дело в том, что я не хочу читать блок за блоком, так как мне нужна фильтрация, несколько раз с разными фильтрами, с разными размерами. Есть ли обходной путь или я должен научиться бродить по блокам: O