我有一个挑战,即在无人飞行器 (UAS) 图像上,哪里有阳光闪烁,包括镜面反射和非镜面反射的水面增亮。在应用晕影校正之前,请查看下面的原始图像。太阳闪烁是图像的橙色和红色下部。红色斑点是镜面反射,橙色像素由于阳光而变亮。
我可以使用以下代码识别太阳闪烁,这并不完美,因为它需要查看图像并估计地图上太阳闪烁的百分比是可变的。我正在处理成千上万的图像,这使得很难对所有图像使用一个百分比,因为太阳闪烁的程度会有所不同。
glint_min_value = np.percentile(band.ReadAsArray(), 85.0)
final_gl_tif = glint_tif.replace('_gl', '_fi_gl')
if not os.path.isfile(final_gl_tif):
cmd = 'gdal_calc.py -A "{}" --quiet --outfile="{}" --calc="A*(A{}{})" --NoDataValue=0'.format(
img, glint_tif, operator, glint_min_value, nodata
)
call(cmd, shell=True)
print('Glint tiff {} {}'.format(glint_tif, os.path.isfile(glint_tif)))
# project and set 0 to -9999 nodata value
gdal_wrap = 'gdalwarp -q -srcnodata {} -dstnodata {} {} {}'.format(
SOURCE_NODATA, nodata, glint_tif, final_gl_tif)
call(gdal_wrap, shell=True)
我想找个地方调整图像,以便校正太阳闪烁的效果。有什么已知的方法或方法吗?