【发布时间】:2019-04-05 15:35:39
【问题描述】:
有没有办法使用带有 GDAL(使用 Python API)的移位向量来扭曲图像?
我的意思是移位向量,例如。具有以下列的 CSV(或 numpy)文件:starting_x,starting_y,target_x,target_y。图像是例如。 Tiff(或 GeoTiff)文件。
我在文档(https://www.gdal.org/gdalwarp.html、https://gdal.org/gdal_translate.html)中没有找到类似支持多个移位向量的东西,但也许有人知道该怎么做。
编辑
我生成了带有一些样本坐标的 VRT 文件。这是我使用的命令:
gdal_translate -gcp 100 100 200 200 -gcp 200 200 300 300 -gcp 500 500 600 600 -of VRT original.tif original.vrt
这是输出文件:
<VRTDataset rasterXSize="16285" rasterYSize="8251">
<Metadata>
<MDI key="TIFFTAG_RESOLUTIONUNIT">1 (unitless)</MDI>
<MDI key="TIFFTAG_XRESOLUTION">1</MDI>
<MDI key="TIFFTAG_YRESOLUTION">1</MDI>
</Metadata>
<Metadata domain="IMAGE_STRUCTURE">
<MDI key="INTERLEAVE">BAND</MDI>
</Metadata>
<GCPList>
<GCP Id="" Pixel="100.0000" Line="100.0000" X="2.000000000000E+02" Y="2.000000000000E+02" />
<GCP Id="" Pixel="200.0000" Line="200.0000" X="3.000000000000E+02" Y="3.000000000000E+02" />
<GCP Id="" Pixel="500.0000" Line="500.0000" X="6.000000000000E+02" Y="6.000000000000E+02" />
</GCPList>
<VRTRasterBand dataType="Byte" band="1">
<Metadata domain="IMAGE_STRUCTURE">
<MDI key="NBITS">1</MDI>
</Metadata>
<Metadata>
<MDI key="STATISTICS_MAXIMUM">1</MDI>
<MDI key="STATISTICS_MEAN">0.074397271632616</MDI>
<MDI key="STATISTICS_MINIMUM">0</MDI>
<MDI key="STATISTICS_STDDEV">0.26241630590769</MDI>
</Metadata>
<ColorInterp>Palette</ColorInterp>
<ColorTable>
<Entry c1="255" c2="255" c3="255" c4="255" />
<Entry c1="0" c2="0" c3="0" c4="255" />
</ColorTable>
<SimpleSource>
<SourceFilename relativeToVRT="1">original.tif</SourceFilename>
<SourceBand>1</SourceBand>
<SourceProperties RasterXSize="16285" RasterYSize="8251" DataType="Byte" BlockXSize="16285" BlockYSize="4" />
<SrcRect xOff="0" yOff="0" xSize="16285" ySize="8251" />
<DstRect xOff="0" yOff="0" xSize="16285" ySize="8251" />
</SimpleSource>
</VRTRasterBand>
</VRTDataset>
现在,我尝试将其用作变形的输入:
import gdal
InputImage = 'original.vrt'
OutTileName = 'warped.tif'
OutTile = gdal.Warp(OutTileName, InputImage, options=gdal.WarpOptions(tps=True))
OutTile = None
它没有损坏,但结果我得到了完全相同的图像 - 就像它根本没有变形一样。另一件事是输入图像的大小为 16 MB,结果图像的大小为 140 MB。我做错了什么?
【问题讨论】: