无人机正射影像实现像素坐标定位
代码原理
无人机正射拍摄,已知像素物理尺寸,使用大疆飞机拍摄的信息,进行像素坐标估算,理论精度应该在米级,但是航偏角以及定位误差导致与实际有所不同
部分参数查看无人机相机参数
关键代码 1. 提取图像参数
def Get_Image_Yaw_angle(file_path):
"""
:param file_path: 输入图片路径
:return: 图片的偏航角
"""
# 获取图片偏航角
#print("----------------------------------大疆exifread信息---------------------------------")
# 定义字节模式 b 和 a,用于查找大疆EXIF数据的起始和结束标记
b = b"\x3c\x2f\x72\x64\x66\x3a\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e"
a = b"\x3c\x72\x64\x66\x3a\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20"
# 打开图片文件,以二进制模式读取
img = open(file_path, 'rb')
# 初始化一个字节数组用于存储EXIF数据
data = bytearray()
# 初始化一个标志,用于判断是否已经找到EXIF数据的起始标记
flag = False
# 逐行读取图片文件内容
for line in img.readlines():
# 如果当前行包含EXIF数据的起始标记,则设置标志为True
if a in line:
flag = True
# 如果标志为True,则将当前行添加到EXIF数据中
if flag:
data += line
# 如果当前行包含EXIF数据的结束标记,则跳出循环
if b in line:
break
# 如果提取到的EXIF数据不为空
dj_data_dict =