Разработка компьютерной программы для работы с фотографиями людей

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    965,95 Кб
  • Опубликовано:
    2013-02-16
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка компьютерной программы для работы с фотографиями людей

Содержание

Введение

1. Лист задания

2. Описание поставленных задач

2.1 Математические алгоритмы для обработки координат точек

2.2 Импорт и экспорт значений в файлы *. xls и *. xlsx

3. Описание разработанной программы

Выводы

Список используемой литературы

Введение


Измерения показателей - есть ключевая задача любой науки. В каждой отрасли существуют свои цели, но методы снятия показателей в целом делятся на 2 подхода. Для физического измерения любого объекта потребуются дополнительные измерительные приборы, подходящие условия и опыт. Всё это приводит к увеличению затрат и времени на реализацию, особенно в случае исследований большого объёма данных. Есть другой подход - автоматизированный. Этот метод измерения предполагает цифровую обработку данных, выполненную вычислительной программой. Такая программа и есть результат данной курсовой работы.

компьютерная программа фотография

1. Лист задания


1.      Вывод изображения на экран в рабочую область.

2.      Установка точек на изображении мышкой.

.        Внедрение математических алгоритмов для обработки координат установленных точек.

.        Импорт и экспорт значений в файлы *. xls и *. xlsx. Наличие MS Office не требуется.

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

.        Сохранение рабочей области в файл *. jpg с водяным знаком времени и даты.

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

.        Измерение отдельных отрезков на рабочей области.

.        Установка сетки на изображение.

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

.        Интерактивные подсказки.

.        Работа с изображением:

·              бинаризация (переход к чёрно-белому);

·              переход к оттенкам серого;

·              негатив;

·              добавление шумов: аддитивного, мультипликативного, импульсного;

·              возможность изменения яркости и контрастности;

·              возможность бинарного распознования границ (метод Жука);

·              применение полученных изменений;

13.    Распознование расы и пола с наглядным отображением показателей (с музыкальным сопровождением).

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

.        Активация программы и сохранение локальной лицензии.

.        Demo - режим.

.        Разработка удобного интерфейса.

.        Классовая структуризация проекта.

.        Раздел "Помощь".

.        Гиперссылки на действующие сайты.

.        Совместимость с Microsoft Windows XP SP2 и выше.

.        Совместимость с.net FrameWork 2.0 и выше.

Для достижения поставленной цели в работе в первую очередь потребуется решить следующие задачи:

)        Создать удобный, понятный интерфейс программы, продумать логику работы пользователя в приложении.

2)      Создать ключевые элементы на форме проекта, для работы с изображениями, таблицами, импортом и экспортом данных.

)        Разработать необходимые алгоритмы обработки полученных данных

)        Внедрить их в проект без ущерба совместимости приложения с разными версиями операционной системы Windows

)        Позаботиться об интуитивности и эстетичности интерфейса программы.

)        Протестировать полученную программу.

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

2. Описание поставленных задач


2.1 Математические алгоритмы для обработки координат точек


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

Data. cR [f1. zatoch, 16] = (float) Math. Sqrt ( (f1. cX [f1. zatoch, 34] - f1. cX [f1. zatoch, 33]) * (f1. cX [f1. zatoch, 34] - f1. cX [f1. zatoch, 33]) + (f1. cY [f1. zatoch, 34] - f1. cY [f1. zatoch, 33]) * (f1. cY [f1. zatoch, 34] - f1. cY [f1. zatoch, 33]));

f1. coef = Data. cR [f1. zatoch, 16] / 100;

2.2 Импорт и экспорт значений в файлы *. xls и *. xlsx


Для удобства выведения и сохранения результатов составлен алгоритм экспорта/импорта значений в файлы Excel. Для этого мы добавили ссылку на библиотеки Excel.

using Excel = Microsoft. Office. Interop. Excel;Office = Microsoft. Office. Core;

А также подключили обработчик Ole для взаимодействия с методами Office. Core

using System. Data. OleDb;

Построение макета лица

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

Сохранение рабочей области

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

Алгоритм работы следующий:

Rectangle r = f1. pictureBox1. RectangleToScreen (f1. pictureBox1. ClientRectangle);b = new Bitmap (r. Width, r. Height);g = Graphics. FromImage (b);. CopyFromScreen (r. Location, new Point (0, 0), r. Size);

Работа с изображением

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

·        уменьшение разрешения исходной фотографии

·        преобразование в негатив;

·        пороговая бинаризация;

·        изменения яркости и контрастности.

Распознование расы и пола

Используя морфологические методы по обработке отрезков, составленные профессором кафедры Анатомии ДонМУ Зениным О.К., мы получаем предполагаемую расу и пол исследуемого человека.

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

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

Активация состоит из нескольких этапов:

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

2.      Пользователю предлагается купить ключ доступа на интернет ресурсе SciMarket. tk, после покупки - ключ будет выслан на email покупателя.

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

В случае, если пользователь не активировал программу, ему будет доступен только demo-режим, с несколькими функциями.

Разработка удобного интерфейса

При детальном разборе и анализе полученных результатов, было выявлено большое колличество погрещностей, связанных в основном с установкой точек на рабочей плоскости. Таким образом, главный интерфейс программы MathMask был изменён и существенно упрощён:


Главным преимуществом нового дизайна является увеличенная рабочая область, с соотношением сторон, удовлетворяющему разрешение большинства цифровых снимков (3648х2736 точек).

Классовая структуризация проекта

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

Form1. cs - основной класс с интерфейсом главного окна, и глобальным блоком данных public static class Data

PaintForm. cs - форма, с методами для работы с графикой.

HelpForm. cs - форма, содержащая все разделы "Помощи".

MarkingClass. cs - класс, где находятся все функции для обработки данных с рабочей области (разметки).

AverageForm. cs - форма, с таблицей средних величин текущего лица

DistanceForm. cs - форма, с таблицами средних величин для нескольких лиц. Так же содежит методы для формирования выборки для анализа.

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

RecForm. cs - форма, с наглядным представлениям результатов, связанных с определением пола и расы человека.

Совместимость

Программа MathMask 2.0 теоретически совместима с ОС Windows XP SP2 с предустановленным.net FrameWork 2.0, однако стоит заметить, что наличие.net FrameWork версии ниже 3.0 может привести к появлению ряда исключений.

Для нормальной работы рекомендуется ПК, где:

·        Частота двухядерного процессора выше 2 гГц.

·        Опретивная память 2 гб и выше.

·        ОС Windows 7 и выше.

·        MS Office 2007 и выше.

·        Монитор с диагональю более 15 дюймов.

3. Описание разработанной программы


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

Программа и описание её возможностей доступно в интернете по адресам www.MathMask. tk <#"600304.files/image002.gif">

Рисунок 1. Интерфейс программы "MathMask".

Панель состоит из 14 элементов:

Рисунок 2. Панель управления программы MathMask

Элементы управления по номеру соответственно:

1.      Открыть фото

2.      Убрать фото

.        Убрать точки

.        Измерить отрезок

.        Закончить ввод точек

.        Включить сетку

.        Следующее лицо

.        Удалить

.        Индикатор номера текущего лица

.        Зуммирование (Zoom)

11.    Построить

.        Импорт из Excel

.        Экспорт в Excel

.        Сохранить картинку

.        Выход

Функции кнопок:

.        Открыть фото - позволяет импортировать готовое цифровое 2-х мерное изображение лица в виде компьютерного файла и поместить его в рабочей области (рис.1,3), в качестве фона.

2.      Убрать фото - убрать фон рабочей области.

.        Убрать точки - убрать установленные точки на рабочей области.

.        Измерить отрезок - позволяет определить реальную длину произвольно выбранного в рабочей области отрезка. Необходимо указать 4 точки: 1 и 2 это линейка (для определения масштаба в мм), 3 и 4 - измеряемый отрезок.

.        Закончить ввод точек - используется для внеочередного завершения процесса установки точек. После нажатия потребуется установить две точки, соответствующие 10 см.

6.      Включить сетку - включает/выключает сетку на рабочей области.

.        Следующее лицо - приступить к установке точек для нового лица. Требуется для статистического анализа.

.        Удалить - удаляет текущее лицо (установленные значения).

.        Индикатор номера текущего лица - показывает номер текущего лица. Для статистического анализа требуется минимум 2 лица.

.        Зуммирование (Zooming) - зуммирует изображение. Используется в качестве лупы.

.        Построить - построение "макета" лица в специальной области, при возможности наложения фотографии человека в качестве фона этой области. Необходимо заранее импортировать значения из файла Excel.

.        Импорт из Excel - импорт файлов с расширением *. xls или *. xlsx.

.        Экспорт в Excel - экспорт полученных данных в файл *. xls или *. xlsx.

.        Сохранить картинку - сохраняет полученное изображение.

.        Выход - выход из программы.

Построение "макета" лица

 

Рисунок 3. Лицо и его электронный вариант

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

Рисунок 4. Интерфейс окна "Анализ всех возможных значений"

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

В программе MathMask предусмотрено несколько вариантов работы с полученными данными: работа со значениями одного лица, нескольких лиц, работа со средними значениями в выборке из заданных лиц [4]. Сохранение текущих результатов для дальнейшего анализа вручную, или этой же программой, путём импорта значений.

Рисунок 5. Окно анализа после добавления в выборку элементов

Рисунок 6. Инструментарий окна расчёта расстояний

Подробнее по функциям каждой из кнопок:

1.      Добавить в выборку - добавляет текущие данные в главном блоке или левого блока в выборку.

2.      Очистить выборку - полная очистка элементов в выборке.

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

.        <выбор номера элемента выборки для отображения >.

.        Сравнить выборку из N элементов - отображает средние арифметические значения полей выборки. Например: расстояние 1-2 на первом лице = 175.03, на втором 182.164, результатом для ячейки 1-2 будет 178.601.

.        Срока выполнения - процесс выполнения расчёта или экспорта данных.

.        Экспорт в Excel соответствующих данных.

.        Закрытие окна анализа.

Перспективы дальнейших исследований

Программирование такого рода инструментов не стесняет разработчиков в плане сфер применения их продукта. Достаточно дописать несколько строчек алгоритма и программа MathMask превратиться в MathMask G. A. S. ("Gender Analyzer System") для распознавания пола, MathMask R. A. S. ("Race Analyzer System") для распознавания расы. И даже "Health Analyzer System", скажем, для определения того, как изменилось состояние лица человека спустя некоторое время, или какие изменения с ним произошли в результате алкогольного опьянения.

В будущем, после проведения соответствующей доработки, программа может быть усовершенствована, путем добавления так называемых "плагинов", обладать интеллектом и самостоятельно искать закономерности в заданной выборке. Такой подход вызовет необходимость создания своеобразных "инструкций" для анализа тех или иных объектов. Например, для определения породы собак ("Breed of Dog System" - BDS) или любых других импровизационных целей, потребуется указать лишь количество точек и эталонные параметры, записанные в соответствующую "инструкцию" [2]. Математическая маска будет составлена автоматически и для любых объектов - c любыми целями, согласно любым параметрам.

Пример работы с программой

1.      Пользователь Вася, с компьютером, работающим на ОС Windows XP, с установленным пакетом MS Office 2003 открывает программу

2.      Далее, нажав на соответствующую кнопку, открывает изображение (большинство форматов картинки поддерживаются)

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

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

.        32 и 33 точки это линейка, а именно отрезок 10см на ней. Так программа определит масштаб и попробует рассчитать коэффициент расстояния ближе к реальным.

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

.        Пользователь Сява, будучи обладателем современного ПК, имеет на борту только что установленную Windows 8, без установленного пакета MS Office. Открытие this. программы у него не вызывает проблем.

.        Пользователь Сява, нажав кнопку "импортировать из Excell” успешно получает доступ ко всем данным в таблице, а так же возможность редактирования их.

.        Пользователю Сява теперь доступно нажатие на кнопку "Построить", чем он и воспользовался, построив макет лица, отмеченного точками пользователем Вася.

.        Пользователь Сява сохраняет макет лица в файл *. jpg пользуясь специальной кнопкой на панеле инструментов this. программы

11.    PROFIT***

*** - имея расстояния на лице человека, существует также возможность определения его различных параметров и типов - пол и раса только часть из них.

Выводы


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

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

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

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

При использовании стандартной лицензии, доступны следующие функции:

построение макета лица в специальной области, при возможности наложения фотографии человека в качестве фона этой области.

измерения расстояний между двумя произвольно заданными точками (линейка)

экспорт расчётных табличных данных в таблицы Excell

импорт расчётных табличных данных из таблиц Excell

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

сохраниние jpg картинки макета лица

работа со статистическими данными: расчёт средних по заданной выборке, автоматический расчёт средних, определение масштаба построения макета в среде операционной системы пользователя (при учёте разрешения монитора пользователя)

определение расы и пола человека

открытие файлов Excell формата *. xls и *. xlsx без обязательного наличия пакета Microsoft Office

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

Список используемой литературы


1.      Методические указания к выполнению курсового проекта по курсу "Системное программирование";

2.      Википедия [Электронный ресурс]. - Режим доступа к ресурсу: <http://www.wikipedia.com>;

.        Библиотека MSDN [Электронный ресурс]. - Режим доступа к ресурсу: <http://www.msdn.com>;

.        CodeProject [Электронный ресурс]. - Режим доступа к ресурсу: http://www.codeproject.com;

5.      Stack Overflow [Электронный ресурс]. - Режим доступа к ресурсу: <http://www.msdn.com> stackoverflow.com;

.        Обработка изображений и распознование образов [Электронный ресурс]. - Режим доступа к ресурсу: http://www.sati. archaeology. nsc.ru <http://www.sati.archaeology.nsc.ru>

.        Методические указания к выполнению курсового проекта по курсу "Обработка сигналов и изображений";

Похожие работы на - Разработка компьютерной программы для работы с фотографиями людей

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!