大疆P4M云遮挡矫正

大疆精灵四多光谱版,集辐射传感器和多光谱相机于一身,理论上只要不是大风天气就都可以良好的完成任务,在AE锁打开的情况下相机会自动根据辐射值调整曝光时间,使太阳辐射有变化的情况下整张影象趋于均一。但实际使用中遇到多云天气,还是会对拼接后的影象产生较大的影响,说明设备的精准度还有待提高。
在这里插入图片描述
比如图中3251和3261明显比其他部分亮

原因分析

首先我们提取整个影象的辐射值,提取方法见疆精灵4多光谱辐射信息分析
在这里插入图片描述
图中红框的区域是上面影象的区域,其中3271和3261是变化比较明显的两个点,3261过亮可能就是辐射传感器慢于相机,相机采集的照片已经是太阳直射了,而辐射传感器还是有云情况下的辐射,导致计算反射率时偏高。

解决办法

既然辐射传感器与相机之间有偏差,在执行任务过程中遇到辐射剧烈变化时,使用后一张的辐射代替前一张的辐射即可基本使相机于实际太阳辐射对应起来,再计算反射率

"""
author: Shuai-jie Shen 沈帅杰
CSDN: https://blog.csdn.net/weixin_45452300
公众号: AgBioIT
"""
import cv2
import numpy as np
from pyexiv2 import Image


def image_info(imagepath):

    """获取xmp、xeif信息"""

    img = Image(imagepath)
    exif = img.read_exif()  # 读取 EXIF 元数据,这会返回一个字典
    xmp = img.read_xmp()
    img.close()  # 操作完之后,记得关闭图片

    return xmp, exif

def change_Irradiance(image_1, image_2):
    """
    使用image_2的辐射替换image_1的辐射
    """
    image_1 = image_1
    image_2 = image_2
    xmp1, exif1 = image_info(image_1)
    xmp2, exif2 = image_info(image_2)
    xmp1['Xmp.drone-dji.Irradiance'] = xmp2['Xmp.drone-dji.Irradiance']
    Image(image_1).modify_xmp(xmp1)


# 五个波段全部替换
for i in range(1,6):
    image_1 = r'G:\multispectral images\DJI_326%d.TIF'%i
    image_2 = r'G:\multispectral images\DJI_327%d.TIF'%i
    change_Irradiance(image_1, image_2)

以上代码是两张图片替换辐射
替换后基于新辐射计算反射率,用metashape拼接
在这里插入图片描述
结果还是不错的,看来基本就是这个原因

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值