当前位置:网站首页>大疆P4M云遮挡矫正
大疆P4M云遮挡矫正
2022-08-02 11:08:00 【沈帅杰】
大疆精灵四多光谱版,集辐射传感器和多光谱相机于一身,理论上只要不是大风天气就都可以良好的完成任务,在AE锁打开的情况下相机会自动根据辐射值调整曝光时间,使太阳辐射有变化的情况下整张影象趋于均一。但实际使用中遇到多云天气,还是会对拼接后的影象产生较大的影响,说明设备的精准度还有待提高。
比如图中3251和3261明显比其他部分亮
原因分析
首先我们提取整个影象的辐射值,提取方法见疆精灵4多光谱辐射信息分析
图中红框的区域是上面影象的区域,其中3271和3261是变化比较明显的两个点,3261过亮可能就是辐射传感器慢于相机,相机采集的照片已经是太阳直射了,而辐射传感器还是有云情况下的辐射,导致计算反射率时偏高。
解决办法
既然辐射传感器与相机之间有偏差,在执行任务过程中遇到辐射剧烈变化时,使用后一张的辐射代替前一张的辐射即可基本使相机于实际太阳辐射对应起来,再计算反射率
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拼接
结果还是不错的,看来基本就是这个原因
边栏推荐
猜你喜欢
bgp与mpls综合实验
MSYS2 QtCreator Clangd code analysis can not find mm_malloc.h problem remedy
多大数量级会出现哈希碰撞
Nanny Level Tutorial: Write Your Own Mobile Apps and Mini Programs (Part 2)
ASP.NET Core 6框架揭秘实例演示[31]:路由"高阶"用法
【面向校招】Golang面试题合集
STM32+MPU6050 Design Portable Mini Desktop Clock (Automatically Adjust Time Display Direction)
一体化在线政务服务平台,小程序容器技术加速建设步伐
为什么要使用BGP?
LeetCode每日一练 —— 20. 有效的括号
随机推荐
从众多接口中脱颖而出的最稳定的接口——淘宝详情api
ansible module --copy module
多大数量级会出现哈希碰撞
[Science of Terminology] For those difficult words about the integrated workbench, read this article to understand in seconds!
一体化在线政务服务平台,小程序容器技术加速建设步伐
Com多进程通信实现
LayaBox---TypeScript---三斜线指令
21 Days Learning Challenge - Day 1 Punch (Screen Density)
LayaBox---TypeScript---JSX
Nanny Level Tutorial: Write Your Own Mobile Apps and Mini Programs (Part 2)
find查找多类型结尾文件
Shell编程案例
Kotlin的协程与生命周期
字节跳动软件测试岗,收到offer后我却拒绝了~给面试的人一些忠告....
LayaBox---TypeScript---Iterator and generator
SQL 经典50题(题目+解答)(1)
全方位剖析Numpy中的np.diag源代码
365天挑战LeetCode1000题——Day 047 设计循环队列 循环队列
阿里CTO程立:阿里巴巴开源的历程、理念和实践
字母交换--字符串dp