Разработка программного комплекса обработки информации со строчных систем летательных аппаратов

История разработок и развития беспилотных летательных аппаратов, принципы их действия и сферы практического применения. Разработка программного обеспечения для обработки результатов съемки тепловых карт местности и устранения геометрических искажений.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 10.01.2013
Размер файла 3,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

и характеризуют степень связанности двух СП и в зависимости от временного сдвига .

В случае эргодических СП авто- и взаимные ковариационные и корреляционные функции можно вычислить по одной реализации случайного процесса следующим образом:

Перечислим основные свойства взаимных ковариационных и корреляционных функций.

Свойства взаимных ковариационных и корреляционных функций

1. Для пары случайных процессов и можно построить две, в общем случае отличающиеся друг от друга взаимные ковариационные функции и , а также две взаимные корреляционные и , т.е. при вычислении взаимных функций важен порядок индексов.

2. Значения взаимных ковариационных и корреляционных функций при не имеют энергетической интерпретации, тем не менее, для них справедливы равенства: и

3. Взаимные ковариационные и корреляционные функции не обязательно должны иметь максимум при , но всегда выполняются следующие соотношения: и ,

которые справедливы для любых . Это означает, что максимумы взаимных ковариационной и корреляционной функций могут оказаться при каком угодно , но не могут превысить значений и соответственно.

4. Если два случайных процесса и статистически независимы, то для любого интервала времени выполняются равенства:

Если среднее значение либо одного, либо обоих независимых СП равно нулю, то взаимная ковариационная функция равна нулю. Отметим, что из факта равенства нулю взаимных ковариационной и корреляционной функций не следует статистическая независимость СП, кроме случая, когда случайные процессы характеризуются совместной гауссовой плотностью распределения.

5. В общем случае взаимные ковариационные и корреляционные функции не являются четными относительно . Тем не менее, для них существует вид симметрии, описываемый соотношениями:

Эти соотношения отражают тот факт, что сдвиг СП во времени в определенном направлении эквивалентен сдвигу СП в противоположном направлении.

Укажем еще одно замечательное свойство ковариационных функций, которое нам понадобится в дальнейшем: ковариационная функция суммы СП равна сумме ковариационных функций каждого СП плюс сумма всех взаимных ковариационных функций:

Аналогичное свойство выполняется для корреляционных функций.

В подавляющем большинстве практических случаев ковариационные и корреляционные функции не могут быть вычислены по формулам -, поскольку совместные плотности вероятности неизвестны. Поэтому оценивают временные ковариационные и корреляционные функции по ограниченной выборке по формулам - в предположении, что случайный процесс является эргодическим.

Пусть случайный процесс наблюдается в течение интервала времени от 0 до секунд, т.е. имеется выборка . Тогда ковариационную и корреляционную функции можно оценить по формулам:

в которых . Время усреднения равно , а не , поскольку выборочная функция охватывает только часть наблюдаемых данных, включающих как , так и . Итак, чтобы оценить, например, ковариационную функцию, следует сдвинуть реализацию на время , перемножить исходную и сдвинутую реализации и усреднить полученное произведение по всей реализации или по некоторому ее отрезку. Эта процедура выполняется для всех требуемых значений сдвига времени .

На практике выполнить интегрирование в и невозможно, т.к. математическое выражение для обычно неизвестно. В этом случае интеграл аппроксимируют суммой выборок из непрерывной временной функции в определенные моменты времени. Таким образом, если выборки из исследуемой реализации соответствуют моментам времени и если их значения равны , то дискретными эквивалентами выражений и будут следующие:

здесь

Вычисление взаимных ковариационных и корреляционных функций производится аналогичным образом. Отметим лишь одно обстоятельство: одинаковая точность оценок авто- и взаимных ковариационных и корреляционных функций достигается лишь в том случае, если число выборок, используемых для расчета взаимных функций, намного превышает количество выборок, применяемых для расчета авто - ковариаций и корреляций.

В нашем случае мы рассматриваем две соседние строки изображения. И нам необходимо определить сдвиг строк первой относительно второй, при котором данные они будут наиболее «близки» друг к другу. Тогда мы представляем строки изображения в виде массива чисел, длинна которого соответствует длине строки в пикселях, а яркости самих пикселей записаны как значения от 0 до 255.

Для определения «близости» полученных последовательностей мы построим взаимно корреляционную функцию между ними. В дискретном случае взаимную корреляцию двух последовательностей можно рассчитывать по следующей формуле:

где i - сдвиг между последовательностями относительно друг друга, а верхний индекс в виде звёздочки означает комплексное сопряжение. В программе для вычисления взаимно корреляционной функции мы используем специальную функцию в математическом модуле NumPy. Данная функция для быстрого вычисления корреляционной последовательности использует одно из свойств взаимно корреляционной функции:

где  означает преобразование Фурье. Данное свойство часто используется вместе с алгоритмами быстрого преобразования Фурье для эффективного вычисления величины взаимной корреляции. В результате выполнения функции мы получаем последовательность соответствующую взаимно корреляционной функции для дискретного случая. Далее мы находим в этой последовательности максимум, положение которого в последовательности соответствует размеру сдвига при наиболее «близком» положении обоих строк, из чего мы и получаем размер сдвига.

Для восстановления геометрических искажений исходного изображения нам необходимо рассчитать размер сдвига для всех строк этого изображения. Так как при вычисление сдвига по взаимной корреляции строк мы вычисляем сдвиг только между соседними строками. Сдвиг между предыдущей и текущей строкой назовем - относительным сдвигом. А нам необходимо для каждой строки рассчитать абсолютный сдвиг. Для этого положим, что абсолютный сдвиг первой строки равен нулю, а абсолютный сдвиг каждой следующей строки равен сумме абсолютного сдвига предыдущей строки и относительного сдвига текущей строки.

В результате проделанных операций мы получим список абсолютных сдвигов, с помощью которого можно выровнять изображение и значительно снизить количество геометрических искажений исходного изображения. Результат восстановления изображения после восстановления геометрических искажений по взаимной корреляции строк представлен на рисунке.

Результат восстановления

3.6 Коррекция сдвига восстановления по пилотажно-навигационной информации

Для повышения точности восстановления изображения мы скорректируем сдвиг при помощи пилотажно-навигационной информации. Данная информация поставляется вместе с изображением отдельным файлом. Структура которого представлена в таблице 3.1. Далее составляется список координат по навигационным данным.

Таблица 3.1 - Структура данных пилотажно-навигационной информации

Диапазон

Описание

1

± 180є

Угол рысканья

2

± 90є

Угол крена

3

± 60є

Угол тангажа

4

± 180є

Угол пути

5

0 - 200 м/c

Приборная скорость

6

0 - 200 м/c

Путевая скорость

7

-500 - 10000 м

Высота Н

8

0 - 6000 м

Радиовысота

9

м

Координата Х

10

м

Координата Y

11

± 30є

Угол атаки

12

± 60 м/с

Вертикальная скорость

13

± 10 м/с

Поперечная скорость

14

с

Абсолютное время UTC с точностью 1 с

15

мс

Время внутри секунды с точностью 1 мс

16

-

Состояние навигационных параметров

Полученный список координат позволяет построить траекторию движения БЛА во время съемки данного изображения. Далее бреем за нулевую ось прямую проходящую через первую и последнюю точки траектории и для всех остальных точек траектории высчитываем смещение относительно нулевой оси.

По формуле 3.1 рассчитываем, сколько метров приходится на пиксель изображения.

где h - высота полета, - угол обзора, а - количество пикселей в линейке камеры.

Далее мы переводим полученный ранее список отклонений курса из метров в пиксели. В случае, когда размер полученного списка отклонений курса меньше размера списка сдвигов восстановления, мы дополняем первый до размера второго с помощью линейной интерполяции соседних вершин. После чего добавляем значения отклонений к соответствующим значениям сдвигов.

3.7 Выравнивание сдвига восстановления

В результате обработки изображения мы исправили импульсные и быстроменяющиеся геометрические искажения. Но в результате работы алгоритмов исправления мы внесли крупные, но медленно изменяющиеся изменения полученные искажения представлены на рисунке.

Крупные геометрические искажения

В результате этого нам необходимо удалить низкочастотные искажения, при этом сохранив исправления высокочастотных искажений. Из этого следует, что нам необходимо найти приближение низкочастотных искажений.

Для этого представим последовательность сдвигов в виде полилинии. Причем полилинию мы образуем следующим образом: по оси двумерного пространства мы будем откладывать номера строк, а по оси отложим значения абсолютного сдвига, соответствующее номеру строки для каждой из строк исходного изображения. Полученный набор точек мы принимаем за последовательный набор вершин рассматриваемой полилинии. Для получения низкочастотной составляющей, нам необходимо удалить все малые ее изменения, другими словами нам необходимо провести операцию упрощения полилинии.

Для проведения этой операции мы будем использовать метод упрощения полилинии Дугласа-Пекера с ненулевой оценкой. Далее представлены этапы работы его работы:

На первом этапе мы подготавливаем исходные данные для работы метода. Для нашего случая это список вершин полилинии и начальный отрезок. В качестве начального отрезка мы принимаем отрезок между первой и конечной вершинами исходной полилинии.

На втором этапе работы метода нам необходимо найти наиболее удаленную вершину полилинии от исходного отрезка. Расстояние мы будем рассчитывать через произведение векторов по формуле:

Расстояние рассчитывается для каждой из вершин исходной полилини, после чего выбирается та, расстояние до которой является максимальным.

В случае когда полученное расстояние меньше заданного размера оценки мы помечаем исходный отрезок как завершенный и прекращаем его обработку.

В противном случае, когда , мы заменяем исходный отрезок на два отрезка проходящих через наиболее удаленную от исходного отрезка точку. И для каждого из них повторяем второй этап метода Дугласа-Пекера как для исходного отрезка.

Полученная в результате упрощения полилилния будет соответствовать низкочастотным геометрическим искажениям исходного изображения. Поэтому нам надо вычесть полученную полилинию из полилинии образованной по последовательности сдвигов. То есть для сдвига каждой отдельной строки мы вычитаем соответствующее значение.

Полученный в результате проведенных операций список сдвигов мы считаем конечным и передаем в функцию применения сдвига.

4. Экономическая часть

В дипломной работе разрабатывается комплекс обработки информации со строчных систем ЛА. В работе рассмотрены следующие проблемы:

1. Разработка алгоритма компенсации искажений по взаимной корреляции строк.

2. Разработка алгоритма компенсации искажений по пилотажно-навигационной информации и вывод в геокоординатах.

3. Разработка и реализация макета ПО.

Результатом дипломной работы макет ПО обработке информации со строчных систем ЛА. В экономической части настоящей дипломной работы содержатся расчеты по обоснованию технико-экономической эффективности и целесообразности разработки программного продукта. В данном разделе также приводится характеристика технической и научной значимости проводимых работ, оценка трудоемкости и затрат на их проведение и получение экономической эффективности от разработки.

4.1 Оценка целесообразности разработки программного продукта

Для обоснования целесообразности разработки программного продукта необходимо выполнить следующие действия:

· Выбрать его аналог. В качестве аналога возьмем ПП «Строка.net», которая является более ранней версией ПП рассматриваемого в дипломной работе, которая обладает аналогичной функциональностью.

· сформулировать перечень функциональных характеристик по предлагаемому варианту разработки ПП. При выборе характеристик качества мы будем учитывать систему характеристик качества программных средств по стандарту ISO 9126:1991 из которых мы выберем характеристики свойственные рассматриваемому ПП:

o точность

o временная экономичность

o изменяемость

o стабильность

o адаптируемость.

· определить конкретные уровни характеристик, их значимость. Уровень функциональных характеристик разрабатываемого программного продукта и их значимость приведены в таблице 4.1.

Таблица 4.1. Уровни функциональных характеристик программного продукта и их значимость

Характеристики качества ПП

Значения характеристик качества ПП

Значимость характеристик

аналог

новый вариант

Точность

5

7

0,4

Временная эконом.

5

6

0,05

Изменяемость

5

7

0,15

Стабильность

6

6

0,1

Адаптируемость

3

6

0,3

· Рассчитать интегральный показатель качества разрабатываемого ПП Который определяется по формуле:

Где - интегральный показатель качества,

- коэффициент влияния, в нашем случае , как для техники улучшающей характеристики системы управления.

А параметр определяется по следующей формуле:

Где , - значение i_й функционально технической характеристики соответственно нового и базового ПП, - значимость i_й функционально технической характеристики качества изделия, n - количество рассматриваемых функционально технических характеристик.

В нашем случае получим:

Полученное значение интегрального показателя качества ПП превышает единицу, что свидетельствует о целесообразности разработки ПП рассматриваемого в данной дипломной работе.

4.2 Определение трудоемкости и затрат на создание программного продукта

Основой для определения затрат на создание программного продукта является показатель трудоемкости работ. Трудоемкость работ может быть определена различными способами в зависимости от используемого инструментария и целей создания программного продукта. Структура затрат на создание программного продукта представлена в таблице 4.2.

Таблица 4.2. Структура трудовых затрат разработки алгоритмов и ПП

№ п/п

Наименование стадии работ

доля работ на стадии в общем объеме работ, %

1

Анализ предметной области

1

2

Изучение средств разработки

2

3

Изучение программируемой задачи

2

4

Анализ методов решения задачи

4

5

Составление структурной схемы алгоритма

2

6

Технеко-экономическое обоснование выбранного варианта алгоритма

4

7

Уточнение и доработка выбранного варианта алгоритма

15

8

Составление программы

20

9

Отладка программы и составление документации

35

10

Анализ работы ПП

5

11

Испытание ПП в реальных условиях

10

ИТОГО

100

Затраты труда в чел.-час. определяются следующим образом по следующей формуле:

где:

- затраты труда на подготовку описания задачи, комплекса задачи;

- затраты труда на изучение и постановку задачи, комплекса задач;

- затраты труда на разработку алгоритма решения задачи, комплекса задач;

- затраты труда на программирование по блок-схемам;

- затраты труда на отладку программы;

- затраты труда на подготовку документации по ПП;

 - условное количество операторов в машинной программе, где:

- количество этапов и элементарных процедур преобразования информации;

- коэффициент сложности программы;

- количество коррекций;

- коэффициент квалификации разработчика, программиста;

- увеличение затрат на изучение и постановку задачи вследствие ее сложности и новизны;

;

;

чел.час;

чел.час;

 чел.час;

=  чел.час;

Используя получившиеся данные, рассчитаем затраты труда по созданию программного продукта:

4.3 Календарное планирование

Календарное планирование работ по созданию алгоритмов и ПП осуществляется согласно директивному графику. Разработка календарного плана производится на основе данных о трудоемкости работ, связанных с выполнением дипломной работы. Окончательно структуру трудоёмкости отдельных этапов определяют, используя данные о видах работ, подлежащих выполнению.

Структура трудоемкости отдельных этапов разработки программного продукта представлена в таблице 4.3:

Таблица 4.3. Структура трудоемкости отдельных этапов разработки ПП

Наименование стадии работы

Удельный вес, %

Трудоемкость стадии, Чел.-час

Длительность стадии в календ. днях

Обзор предметной области

6

17,85

3

Постановка задачи

5

14,875

2

Сборка изображения из отдельных строк

8

23,8

3

Применение фильтров для подавления шумов

6

17,85

3

Компенсация искажений по корреляции строк

15

44,625

6

Яркостная коррекция изображения

5

14,875

2

Геокодирование изображения

10

29,75

4

Компенсация искажений по навигационной

15

44,625

6

Разработка макета ПО

30

89,25

12

ИТОГО

100

297,5

41

В таблице 4.4 представлен календарный график этапов разработки ПП.

Таблица 4.4. Календарный график этапов разработки ПП

№ этапа

наименование стадии работы

Календарные даты работ

Начало

Окончание

1

Обзор предметной области

02.11.2010

04.11.2010

2

Постановка задачи

05.11.2010

08.11.2010

3

Сборка изображения из отдельных строк

09.11.2010

11.11.2010

4

Применение фильтров для подавления шумов

12.11.2010

16.11.2010

5

Компенсация искажений по корреляции строк

17.11.2010

24.11.2010

6

Яркостная коррекция изображения

25.11.2010

26.11.2010

7

Геокодирование изображения

29.11.2010

02.12.2010

8

Компенсация искажений по навигационной

03.12.2010

10.12.2010

9

Разработка макета ПО

13.12.2010

28.12.2010

Таким образом, затраты труда на создание алгоритмов и программного продукта составили 297,5 чел.-час или 41 день.

На рисунке 4.1 приведен календарный план работ по созданию алгоритмов и ПП.

Рисунок 4.1 - Календарный план работ по созданию алгоритма и ПП

4.4 Определение себестоимости и цены план работ по созданию алгоритма и программного продукта

Разработка программ и алгоритмов является областью с малой материало- и энергоемкостью, и основные затраты связаны с непосредственным или овеществленным трудом специалистов различных категорий. При этом учитываются все категории специалистов, участвующих непосредственно или косвенно в создании данного программного продукта.

Основные статьи расходов при разработке алгоритма:

1. Материалы

2. Заработная плата основных исполнителей

3. Отчисления на социальные нужды

4. Накладные расходы

5. Прочие расходы

Основные статьи расходов при разработке алгоритма и их удельный вес в общем объёме затрат представлены в таблице 4.2.

К статье затрат вспомогательные материалы относятся следующие элементы:

- две пачки бумаги для принтера формата А4 стоимостью 150 руб. за пачку, 150 * 2 = 300 руб.;

- один картридж для принтера марки HP стоимостью 1500 руб.;

Итого по статье «материалы» затраты составили:

З = 1500 + 300 = 1800 р.

К статье затрат заработная плата разработчиков - основная и дополнительная заработная плата разработчиков.

Заработная плата рассчитывается на основе трудоёмкости соответствующих стадий работ. Величина заработной платы определяется по следующей формуле:

где k - количество стадий работ;

-трудоёмкость ой стадии;

- средняя дневная тарифная ставка оплаты работ j_ой стадии.

Премия составляет 15% от заработной платы.

По каждой стадии работ определяются исполнители и показатели оплаты труда. Результаты расчёта представлены в таблице 4.5.

Таблица 4.5. Результаты расчёта заработной платы персонала

№ стадии
работ

Трудоемкость стадии

Исполнители

Часовая
ставка

Заработная
плата

должность

Числ.

1

17,85

Программист и руководитель

2

100 руб. час

1963,5

2

14,875

1636,25

3

23,8

2618

4

17,85

1963,5

5

44,625

4908,75

6

14,875

1636,25

7

29,75

3272,5

8

44,625

4908,75

9

89,25

9817,5

ИТОГО

297,5

32725

Премия

15%

37633,75

Распределение трудоемкости и заработной платы между работником и руководителем представлено в таблице 4.6.

Таблица 4.6. Распределение трудоемкости и заработной платы

№ стадии

работ

Трудоемкость

Заработная плата

Стадии

для работ.

Для руков.

работника

руководит.

общая

1

17,85

16,065

1,785

1606,5

357

1963,5

2

14,875

13,3875

1,4875

1338,75

297,5

1636,25

3

23,8

21,42

2,38

2142

476

2618

4

17,85

16,065

1,785

1606,5

357

1963,5

5

44,625

40,1625

4,4625

4016,25

892,5

4908,75

6

14,875

13,3875

1,4875

1338,75

297,5

1636,25

7

29,75

26,775

2,975

2677,5

595

3272,5

8

44,625

40,1625

4,4625

4016,25

892,5

4908,75

9

89,25

80,325

8,925

8032,5

1785

9817,5

Итого

297,5

267,75

29,75

26775

5950

32725

Норматив отчислений на социальные нужды составляет 26,2% от заработной платы основных исполнителей, тогда их можно рассчитать как:

Величина накладных расходов определяется по отношению к заработной плате: , где - коэффициент накладных расходов, для ПП принимается н6а уровне , в данном случае , тогда

Прочие расходы можно рассчитать по следующей формуле:

.

Таблица 4.7. Основные статьи расходов

№ п./п.

Наименование статей затрат

Затраты, руб.

Удельный вес, %

1

Материалы

1800

1,7%

2

Заработная плата основных исполнителей

37633

36,2%

3

Отчисления на социальные нужды

9860

9,5%

4

Накладные расходы

50805

48,9%

5

Прочие расходы

3763

3,6%

ИТОГО

103862

100,00%

Общие затраты на создание алгоритмов и программного продукта составили ЗОБЩ = 103862 руб.

Цена на первоначально разработанных алгоритмов и ПП определяется с учетом рентабельности разработки:

руб.

Выводы

В экономической части дипломной работы по разработке комплекса обработки информации со строчных систем ЛА были проведены расчеты, которые позволяют судить о технической, экономической и научной значимости программного продукта, а также о целесообразности его разработки.

В результате расчетов получили:

· индекс технического уровня программного продукта, равный 1.91, что свидетельствует о целесообразности разработки;

· годовой экономический эффект составляет руб., уровень экономической эффективности -, а срок окупаемости 1,33 года после внедрения, что отражает эффективность применения разработанного программного продукта;

· продолжительность выполнения работ по созданию алгоритмов и программного продукта составляет 297 часов или 41 день.

Список литературы

1. СанПиН 2.2.22.4.1340-03 «Гигиенические требования к персональным электронно-вычислительным машинам и организации работы»

2. Бобков Н.И., Голованова Т.В. «Охрана труда на ВЦ» - Изд-во МАИ, 1991 г.

3. ГОСТ 12.1.030. - 81. ССБТ. Электробезопасность. Защитное заземление. Зануление. Введ. 01.07.82 г.

4. ГОСТ 12.1.038. - 82. ССБТ. Предельнодопустимые уровни напряжений прикосновения и токов. Введ. 01.07.83 г.

5. Яров В.Н. Выбор мероприятий и расчет элементов электрозащиты. Методические указания по разделу «Охрана труда» дипломных проектов. - М.: МАИ, 1988.з

6. Крылья Родины. Юрий Янкевич. «Кому лететь на разведку»

7. C. Ганин, А. Карпенко, В. Колногоров, Г. Петров. «Беспилотные летательные аппараты»

8. Драгун В.Л. Тепловизионные системы в исследовании тепловых процессов.arhivteplovizory.html

Уголок неба - большая авиационная энциклопедия http:www.airwar.rubpla pix_in_line

Приложение 1

Листинг пограммы

«»«возвращает сдвиг в пикселях «»»

def navi_shift:

a =, navi_data]

ra = math.sqrt

b =

mppx = metr_per_pixel

for i in navi_data:

c=, i]

rc = math.sqrt

if rc!= 0:

alpha = math.acosmppx)

b.append

b.insert

return b

def calculate_navigation_shift:

tmp = open

navi_data = navi_read

tmp.close

return navi_shift)))

if __name__ == «__main__»:

if len >1:

file_name = sys.argv

res = calculate_navigation_shift

print file_name

for i in res:print round

print «=========================»

Файл FiltrateImage.py

# -* - coding: cp1251 -*-

from PIL import Image

from PIL import ImageFilter

from PIL import ImageChops

import numpy

import time

import math

def Filtrate:

imageMF = image.filter)

imageDif = ImageChops.difference

alpha = 50

result = Image.new

for x in range:

for y in range:

pos =

if imageDif.getpixel > alpha:

result.putpixel)

else:

result.putpixel)

return result

def CorrelationShift:

result = numpy.correlate

return result.argmax -

def ImageToArray:

result = list

ims = img.tostring

for i in range:

fr = img.size*i

to = img.size*

line = ims

result.append))

return result

def ShiftCount:

result = list

result.append

for i in range - 1):

result.append +result)

return result

def ShiftApply:

shiftMin = min

shiftMax = max

result = list

for i in range):

result.append)

return result

def LineShiftApply:

newSize = len + abs + MaxShift

leftSize = minShift - shift

rightSize = newSize - len + leftSize

res = list

for i in range):

res.extend

res.extend

for i in range:

res.extend

return res

def ArrayToImage:

size =, len)

mode = «L»

res = list

for i in imgArr:

res.extend

resText = str)

result= Image.fromstring

return result

def Restore:

img = Filtrate

imr = ImageToArray

shift = ShiftCount

if navi_shift!= None:

shift = add_navi_shift

shift = shift_correction

result = ArrayToImage)

return result

def add_navi_shift:

count = len

navi_expand_count = float - 1))

result =]

for i in navi_shift:

start = result

end = i

step = float * + y0

result.append)

return result

def shift_approximate:

pointA =]

pointB =]

indexes= range

distances =

for i in range):

point =, data]

distances.append)

start_new = numpy.array.argmax

if distances <= eps:

return

else:

result =

result.extend)

result.extend)

return result

«» «растояние от отрезка AB до точки»"»

def distance:

a= - pointA, point - pointA]

b = - pointA, pointB - pointA]

a_size = math.sqrt

b_size = math.sqrt

if == 0:

temp = 1

else:

temp = /

if temp > 1: temp = 1

elif temp < -1: temp = -1

alpha = math.acos

return a_size * math.sin

if __name__ == «__main__»:

import sys

if len >1:

load_name = sys.argv

save_name = load_name + '' + load_name

if len >2:

save_name = sys.argv

im = Image.open

result = Restore

result.save

def print_tree:

if type!= type:

print)

else:

for i in tree:

print_tree

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.