Лучший способ исправить солнечные блики на снимках UAS над поверхностью воды - PullRequest
1 голос
/ 20 марта 2020

У меня есть проблема, где есть солнечный блеск, который включает в себя как зеркальное, так и не зеркальное осветление поверхности воды на изображениях беспилотных летательных аппаратов (БАС). Пожалуйста, посмотрите необработанное изображение ниже, прежде чем применять коррекцию виньетки. Солнечный блеск - это нижняя оранжево-красная часть изображения. Красные пятна являются зеркальным отражением, а оранжевые пиксели становятся ярче из-за солнечного света.

enter image description here

Я могу определить блики солнца с помощью следующего кода , что не идеально, так как требует просмотра изображения и оценки процента солнечного блеска на карте, который является переменным. Я имею дело с тысячами изображений, что затрудняет использование одного процента для всех изображений, так как уровень солнечного блеска меняется.

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)

Я бы хотел отрегулировать изображение так, чтобы эффект солнечного блеска корректировался. Есть какой-нибудь известный метод или подход для этого?

...