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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Программирование и разработка алгоритмов. Язык MATLAB

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

С помощью языка MATLAB можно писать программы и алгоритмы быстрее, чем на традиционных языках программирования, потому что нет необходимости таких низкоуровневых организационных операций как объявление переменных, определение типов и выделение памяти. Во многих случаях переход на векторные и матричные операции избавляет от необходимости использования циклов for. В результате одна строка MATLAB кода часто может заменить несколько строк C/C++ кода.

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

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

Ключевые особенности

- Платформонезависимый высокоуровневый язык программирования ориентированный на матричные вычисления и разработку алгоритмов

- Интерактивная среда для разработки кода, управления файлами и данными

- Функции линейной алгебры, статистики, анализ Фурье, решение дифференциальных уравнений и др.

- Богатые средства визуализации, 2-D и 3-D графика.

- Встроенные средства разработки пользовательского интерфейса для создания законченных приложений на MATLAB

- Средства интеграции с C/C++, наследование кода, ActiveX технологии [17].

3.2 Алгоритм и блок-схема поиска и записи особых точек

Структурная схема программы

Алгоритм программы:

1) Выбираем изображение и загружаем его;

2) Определяем размер изображения;

3) Определяем маски;

4) Вычисляем производные;

5) Фильтрация;

6) Находим меру отклика;

7) Локальный максимум;

8) Устанавливаем пороговое значение;

9) Строим особые точки;

10) Устраняем границы;

11) Получаем координаты точек и расстояния между ними;

12) Строим граф.

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

Рис.1. Блок-схема программы нахождения особых точек и построение графа

3.3 Алгоритм и блок-схема введения ЦВЗ для защиты авторства изображения

Рис. 2. Блок-схема введения ЦВЗ для защиты авторства изображения

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

Алгоритм программы:

1) Выбираем изображение и загружаем его;

2) Определяем размер изображения;

3) Генератор псевдослучайной последовательности

4) Прямое дискретное преобразование Фурье

5) Определяем модуль дискретного преобразования Фурье

6) Определяем фазу дискретного преобразования Фурье

7) Проверяем равен ли коэффициент filter_m «1»

8) Вводим цифровой водяной знак

9) Получаем маркированное изображение

10) Переводим изображение в битовый формат

11) Выводим изображение

4. Технико-экономическое обоснование разработки программы

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

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

Таблица 1

Затраты рабочего времени при проведении конструкторской подготовки программы

Наименование этапа конструкторской подготовки программы

Время выполнения, часов

1. Разработка

1.1. Технического задания

1,0

1.2. Рабочего чертежа

25,0

2. Составление спецификаций и технических условий

5,0

3. Разработка программного модуля

30,0

4. Тестирование и исправление ошибок

8,0

5. Опытная эксплуатация

6,0

6. Доработка программы по результатам эксплуатации

6,0

ИТОГО (по данным видам работ)

82,0

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

- оплата труда по отдельным расценкам, тарифным ставкам (окладам) за выполнение работ;

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

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

Дополнительная заработная плата учитывает выплаты, предусмотренные Законодательством о труде и положениями об оплате труда, принятым на предприятии (организации), за непроработанное (неявочное) время: - оплата очередных и дополнительных отпусков, учебных отпусков, перерывов в работе кормящих матерей и т.п.

Заработная плата работников может быть определена в следующей последовательности:

4.1 Рассчитываем прямой (тарифный) фонд заработной платы как:

,

где Фзп.пр. - тарифный фонд заработной платы, руб.,

Тст. р. - часовая тарифная ставка работника, руб.

Тарифные коэффициенты и тарифные ставки (оклады) Единой тарифной сетки работников Республики Беларусь, утвержденной постановлением Министерства труда и социальной защиты Республики Беларусь от 20 сентября 2002 г. №123, с изменениями и дополнениями от 23 марта 2009 г. Величина тарифной ставки (оклада) может быть определена по следующему выражению:

,

где От.р. - тарифная ставка (оклад) работника, руб.,

Кт - тарифный коэффициент соответствующего разряда,

Зп.мин - тарифная ставка 1-го разряда, руб.

Постановления Совета Министров от 25 марта 2014 №256 "Об установлении размера тарифной ставки первого разряда для оплаты труда работников бюджетных организаций и иных организаций, получающих субсидии, работники которых приравнены по оплате труда к работникам бюджетных организаций". Данным документом правительства тарифная ставка первого разряда с 1 мая нынешнего года повышена до Br275 тыс.

Корректирующие коэффициенты к тарифным ставкам (окладам), рассчитанным в соответствии с установленной правительством тарифной ставкой первого разряда и коэффициентами Единой тарифной сетки работников Республики Беларусь (ЕТС), следующие:

с 1-го до 2-го разряда - 3,500;

со 2-го до 3-го разряда - 3,066;

с 3-го до 4-го разряда - 2,660;

с 4-го до 5-го разряда - 2,321;

с 5-го до 6-го разряда - 2,150;

с 6-го до 7-го разряда - 1,990;

с 7-го до 8-го разряда - 1,890;

с 8-го до 9-го разряда - 1,800;

с 9-го до 10-го разряда - 1,710;

с 10-го до 11-го разряда - 1,628;

с 11-го до 12-го разряда - 1,540;

с 12-го до 13-го разряда - 1,458;

с 13-го до 14-го разряда - 1,379;

с 14-го до 15-го разряда - 1,310;

с 15-го до 16-го разряда - 1,250;

с 16-го до 17-го разряда - 1,210;

с 17-го до 18-го разряда - 1,171;

с 18-го до 19-го разряда - 1,131;

с 19-го до 20-го разряда - 1,101;

с 20-го до 21-го разряда - 1,062;

с 21-го до 22-го разряда - 1,032;

с 22-го до 23-го разряда - 1,000;

с 23-го до 24-го разряда - 1,000;

с 24-го до 25-го разряда - 1,000;

с 25-го до 26-го разряда - 1,000;

с 26-го до 27-го разряда - 1,000;

по 27-му разряду - 1,000.

Тарифные ставки (оклады) исчисляются путем последовательного умножения тарифной ставки первого разряда на соответствующие тарифные коэффициенты ЕТС и установленные корректирующие коэффициенты.

В Минтруда и соцзащиты подчеркнули, что увеличится соотношение между зарплатой работников, тарифицируемых 1-м и 27-м разрядами, с 2,18 до 2,43 раза, что в большей степени позволит увязать размеры зарплаты работников в зависимости от степени сложности выполняемых ими работ (обязанностей), ответственности, уровня квалификации.

Тарифный разряд молодого специалиста равен 12, а тарифный коэффициент соответственно 2,84.

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

(1)

где Зр - зарплата работника за час;

Отч- отчисления с зарплаты, %;

Тн- время написания программы, ч.

Заработная плата инженера за час определяется по следующей формуле:

(2)

где Стпр - ставка программиста, руб.;

Фвм- фонд рабочего времени в месяц, ч.;

Ндоп - процент надбавок и повышений к тарифному окладу.

Заработная плата инженера за время работы над проектом равна:

руб. (257000)

Отчисления на соцстрах и фонд занятости вычисляются по следующей формуле:

(3)

где Осс - отчисления на соцстрах (0,3% от Зобщ), руб.;

Офз- отчисления в фонд занятости (34% от Зобщ), руб.

руб.

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

- стоимость малоценных и быстроизнашивающихся предметов;

- затраты на топливо и энергию для технологических целей;

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

- затраты на ремонт оборудования и установок определяем по следующему выражению;

- амортизационные отчисления.

При разработке программного продукта был использован компьютер. Таким образом, рассчитаем затраты, связанные с эксплуатацией ЭВМ:

1. Затраты на электроэнергию;

2. Затраты по техническому обслуживанию и ремонту ЭВМ;

3. Затраты на амортизационные отчисления.

Стоимость электроэнергии рассчитывается по следующей формуле:

,

где М - мощность ЭВМ (0,5 кВт);

кз - коэффициент загрузки (0,8);

СкВт.ч. - стоимость 1 кВт час электроэнергии (1330 руб/кВт.ч.).

Фвр -фонд времени эксплуатации ЭВМ (82 час):

Таким образом, стоимость электроэнергии составит:

руб.

Техническое обслуживание и ремонт составляют 4% от стоимости компьютера, тогда приняв в качестве стоимости компьютера сумму

руб., а количество рабочих дней в году 258, получаем:

руб.

Это стоимость и обслуживание технического ремонта за период разработки.

Амортизационные отчисления рассчитываются по формуле:

- норма амортизации, которая высчитывается по формуле: НА = 1/Тс, где Тс - срок службы оборудования и установок, лет (примем 5 лет).

Рассчитаем амортизационные отчисления за год:

руб.,

тогда амортизационные отчисления за период разработки программного обеспечения составят:

руб.

В таблице 4.3 приведена смета затрат на разработку программного продукта.

Таблица 2

Статьи затрат на проектирование и разработку программного обеспечения

Наименование показателя

Стоимость, руб.

1. Затраты на оплату труда

413 700

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

141 900

3. Содержание и эксплуатация научно-исследовательского оборудования и установок:

3.1. затраты на топливо и энергию для технологических целей

43 624

3.2. техническое обслуживание и ремонт оборудования

2 380

3.3. амортизационные отчисления

11 920

Итого

613 524