Измерить перекрытия двух изображений по их размерам

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

    def get_distance_between_images(self,images_poses_dict):
    all_data=[]
    res_data=[]
    R = 6373.0
    for k,v in images_poses_dict.items():
        all_data.append(v)
    all_data_sort=sorted(all_data, key=lambda x: x['filename'])
    for i in range(len(all_data_sort)):
        for j in range(i + 1, len(all_data_sort)):

            lat1 = radians(all_data_sort[i]['latitude'])
            lon1 = radians(all_data_sort[i]['longitude'])
            lat2 = radians(all_data_sort[j]['latitude'])
            lon2 = radians(all_data_sort[j]['longitude'])
            dlon = lon2 - lon1
            dlat = lat2 - lat1
            a = sin(dlat / 2) ** 2 + cos(lat1) * cos(lat2) * sin(dlon / 2) ** 2
            c = 2 * atan2(sqrt(a), sqrt(1 - a))
            distance = R * c *1000
            res_data.append({
                'filename1':all_data_sort[i]['filename'],
                'filename2':all_data_sort[j]['filename'],
                'distance':distance
            })
    result=sorted(res_data, key=lambda x: x['filename1'])
    return result

Пример ее выхлопа

{'filename1': 'dji_0666.jpg', 'filename2': 'dji_0667.jpg', 'distance': 1.4510858010828085}
{'filename1': 'dji_0663.jpg', 'filename2': 'dji_0664.jpg', 'distance': 1.4625754772170405}
{'filename1': 'dji_0652.jpg', 'filename2': 'dji_0653.jpg', 'distance': 1.7807144386327662}
{'filename1': 'dji_0659.jpg', 'filename2': 'dji_0660.jpg', 'distance': 1.8890964513768231}
{'filename1': 'dji_0644.jpg', 'filename2': 'dji_0645.jpg', 'distance': 1.9983018138089903}
{'filename1': 'dji_0655.jpg', 'filename2': 'dji_0656.jpg', 'distance': 2.1954923719218247}
{'filename1': 'dji_0647.jpg', 'filename2': 'dji_0648.jpg', 'distance': 2.3366167661177}
{'filename1': 'dji_0651.jpg', 'filename2': 'dji_0653.jpg', 'distance': 3.782242819346054}

Ф-ция получения реальных размеров изображения

   def get_real_size(self,images_poses_dict,im_size,sensor_width,focal_length):
    result=[]
    for k,v in images_poses_dict.items():
        gsd=(v['altitude']*sensor_width)/(focal_length*im_size[1])
        real_width = im_size[1]*(gsd)
        real_height = im_size[0]*(gsd)
        result.append({
            v['filename']:[{'width':real_width,'height':real_height}]
        })
    return result

Пример ее выхлопа

{'dji_0644.jpg': [{'width': 156.73751586554621, 'height': 117.55313689915965}]}
{'dji_0645.jpg': [{'width': 156.97376810364148, 'height': 117.7303260777311}]}
{'dji_0646.jpg': [{'width': 157.42660635294118, 'height': 118.06995476470588}]}
{'dji_0647.jpg': [{'width': 157.43224231092438, 'height': 118.07418173319327}]}
{'dji_0648.jpg': [{'width': 156.8373609831933, 'height': 117.62802073739496}]}
{'dji_0649.jpg': [{'width': 157.8008574677871, 'height': 118.35064310084033}]}

Ответы (0 шт):