У меня есть проблема, где есть солнечный блеск, который включает в себя как зеркальное, так и не зеркальное осветление поверхности воды на изображениях беспилотных летательных аппаратов (БАС). Пожалуйста, посмотрите необработанное изображение ниже, прежде чем применять коррекцию виньетки. Солнечный блеск - это нижняя оранжево-красная часть изображения. Красные пятна являются зеркальным отражением, а оранжевые пиксели становятся ярче из-за солнечного света.
Я могу определить блики солнца с помощью следующего кода , что не идеально, так как требует просмотра изображения и оценки процента солнечного блеска на карте, который является переменным. Я имею дело с тысячами изображений, что затрудняет использование одного процента для всех изображений, так как уровень солнечного блеска меняется.
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)
Я бы хотел отрегулировать изображение так, чтобы эффект солнечного блеска корректировался. Есть какой-нибудь известный метод или подход для этого?