镶嵌不同分辨率数据
如果有一些想要合并的图块,但有些图块的分辨率不同,可以使用gdalbuildvrt
指定-resolution
参数,以确保输出文件具有预期的分辨率。还是使用处理航空图像部分的示例,我们可以创建一个虚拟光栅并指定resolution
。
gdalbuildvrt -input_file_list filelist.txt naip.vrt -resolution highest -r bilinear
使用gdal_translate
转换此文件或用gdalwarp
对其进行取子集,将得到源图块中分辨率最高的数据。
删除 JPEG 压缩伪影
对航空或无人机图像应用JPEG压缩可能会导致结果出现边缘伪影。由于JPEG是一种有损压缩算法,它不会将任何数据值(通常为0)转换为非零值。当想要镶嵌不同的图块或屏蔽黑色像素时,这会导致问题。GDAL附带了一个名为nearback
的工具,旨在解决这个问题。可以指定一个值来删除可能不完全为0的边缘像素。它向内扫描图像,直到找到这些接近黑色的像素值并屏蔽它们。假设我们有一个没有alpha波段的JPEG压缩图像的马赛克,我们想设置一个掩码。如果我们简单地将0设置为节点数据值,最终会出现边缘伪影,以及马赛克中的许多暗像素(建筑阴影/水等)被掩盖。所以,我们使用nearblack
来设置边缘像素,其中值0-5被视为无数据。
nearblack -near 5 -setmask -o aoi_masked.tif aoi.tif -co COMPRESS=JPEG -co TILED=YES -co PHOTOMETRIC=YCBCR