Разработка программного комплекса обработки информации со строчных систем летательных аппаратов
История разработок и развития беспилотных летательных аппаратов, принципы их действия и сферы практического применения. Разработка программного обеспечения для обработки результатов съемки тепловых карт местности и устранения геометрических искажений.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 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
Подобные документы
Беспилотные летательные аппараты. Возможный функционал применения беспилотных летательных аппаратов. Аэростатные летательные аппараты. Комплексы для использования до и свыше 100 метров. Двухлучевая модель распространения радиоволн, коэффициент отражения.
курсовая работа [2,8 M], добавлен 26.08.2017Аналитический обзор видеосистем с элементами интеллектуальной обработки видеоконтента: FaceInspector, VideoInspector Xpress. Разработка алгоритма организации вычислительных средств комплекса, в структуру поэтапного решения задачи анализа видеообъекта.
дипломная работа [3,4 M], добавлен 14.06.2012Современные технологии ведения боя. Роботизированные средства в военной сфере. Устройство беспилотных летательных аппаратов, наземных и морских роботов. Разработка программы на языке Prolog для выполнения задачи разминирования военным роботом-сапером.
курсовая работа [375,1 K], добавлен 20.12.2015Требования, предъявляемые к свойствам систем распределенной обработки информации. Логические слои прикладного программного обеспечения вычислительных систем. Механизмы реализации распределенной обработки информации. Технологии обмена сообщениями.
курсовая работа [506,8 K], добавлен 03.03.2011Разработка информационно-программного комплекса для использования на IBM-совместимых ПК в качестве автоматизированного рабочего места обработки информации. Реализация базы данных в СУБД IBexpert. Характеристики разработанной информационной системы.
курсовая работа [1,3 M], добавлен 13.08.2012Рассмотрение приемов разработки программных средств для автоматизированных систем обработки информации и управления. Разработка программного продукта, предназначенного для автоматизации работы заместителя директора по учебно-воспитательной работе.
дипломная работа [1,7 M], добавлен 27.02.2015Обзор существующего программного обеспечения для автоматизации выделения границ на изображении. Разработка математической модели обработки изображений и выделения контуров в оттенках серого и программного обеспечения для алгоритмов обработки изображений.
дипломная работа [1,7 M], добавлен 27.03.2013Анализ перспектив развития средств обработки текстовой и графической информации. Выбор программного обеспечения обработки информации, технических средств, периферийных устройств. Исследование особенностей работы с программой деловой графики MS Visio.
курсовая работа [616,2 K], добавлен 04.05.2013Реализация программного средства "Действия над матрицами". Разработка кода программного продукта на основе готовой спецификации на уровне модуля. Использование инструментальных средств на этапе отладки программного модуля. Выбор стратегии тестирования.
отчет по практике [296,1 K], добавлен 19.04.2015Анализ видов обеспечения автоматизированных систем предприятия. Средства программирования распределенных систем обработки информации. Изучение особенностей использования технологии распределенных объектов. Эксплуатация программного обеспечения системы.
отчет по практике [486,0 K], добавлен 23.11.2014