-
Notifications
You must be signed in to change notification settings - Fork 0
/
plan.txt
119 lines (76 loc) · 4.28 KB
/
plan.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
Программа для автоматизированной обработки пары фотографий облачного неба
(стереопары) с целью определения высоты нижнего слоя облаков.
Запуск:
python left_image_fname right_image_fname
A) =Вход=
1) 2 файла изображений стереопары (в некой папке img/):
20160824-174253-406-1.jpg
20160824-174253-406-2.jpg
date - time - msec - num_in_pair . img_format
num_in_pair:
1 -- 1ая камера
2 -- 2ая камера
2) Конфигурация эксперимента
Txt-файлы (в папке config)
* Аффинные+дисторсные коэффициенты для цифровой юстировки стереопары:
файл aff_dist.txt: a, b, c, d, e, f, eps1, eps2 -- 8 коэффициентов
# rX = a*lX + b*lY + e - eps1*z_x(lX, lY) + eps2*z_x(rX, rY)
# rY = c*lX + d*lY + f - eps1*z_y(lX, lY) + eps2*z_y(rX, rY),
# where approximately(!):
# z_x = (x-x0)*[ (x-x0)^2 +(y-y0)^2 ] = z_x(rX, rY) = z_x(lX, lY)
# z_y = (y-y0)*[ (x-x0)^2 +(y-y0)^2 ] = z_y(rX, rY) = z_y(lY, lY)
Пример:
0.9971153033
0.0087447028
-0.0083285674
0.9982106815
235.1329372157
56.6121989931
0.0000000334
0.0000000332
* Расстояние между камерами, Угол обзора камер по оси Х (горизонтали),
Число градаций серого, Минимальная высота:
файл settings.txt: cam_distance (17.0 (m)), cam_distance_err (0.5 (m)),
cam_viewangle (62.0), cam_viewangle_err (5.0),
num_shades (256 (px)), min_height (200 (m))
4) Желаемое количество измерений на стереопаре: num_measurements
по умолчанию: 10
5) Размеры кусочков для анализа (px): piece_width, piece_height
по умолчанию: 200, 200
B) Алгоритм автоматизированного анализа стереопары
Идея:
a) Подготовка к анализу:
-- Загрузка параметров работы из аргументов команды и из файлов
конфигурации (папка config/)
-- Загрузка обоих оригинальных изображений в память в виде Grascale.
-- Юстировка("Нормализация") изображений для возможности анализа.
for i = 0..num_measurements: # num_measurements раз
-- эксперимент по оценке высоты:
--- Из центральной части 1ого изображения берем случаным образом кусочек
размером (piece_width, piece_height).
Ищем ближайший кусочек на области из 2го изображения, соответствующей
минимальной высоте min_height, ближайший по морфологической форме к
искомому.
--- Считаем горизонтальный сдвиг между левыми верхними углами кусочков,
вычисляем дистанцию до облачности и погрешность.
-- Дописываем результат эксперимента в последнюю строку соответствующего
файла.
endfor
= Алгоритм одного эксперимента =
[1] Б
Z) =Выход=
Txt-файл (в папке results/):
Пример:
20160824-174253-406_n10_sz200.txt
date - time - msec _n num_measurements _sz width(in px) . txt
(по умолчанию: width == height, т.е. для измерений используются
квадратные "кусочки" изображения)
В файле столбцы:
lX, lY -- координаты (в px) левого верхнего угла "кусочка", выбранного
на изображении №1 для поиска на изображении №2
rX, rY -- координаты (в px) левого верхнего угла "кусочка", который
найден на изображении №2 и лучше всего совпадает с искомым
(lX lY rX rY h_estim h_err)
400 300 440 315 965.35 129.23
...
и т.д.