Скачиваний:
184
Добавлен:
15.06.2014
Размер:
6.5 Mб
Скачать
  1. Разработка программы

При разработке программы «Органайзер (будильник)» использовались следующие средства:

  1. Программные:

  • Язык программирования – C# 4.0.

  • Платформа - .NET Framework 4.0.

  • Среда разработки – Visual Studio 2010.

  1. Аппаратные:

  • х86-совместимый компьютер на базе процессора Celeron.

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

Были разработаны:

  • Программное средство, загружающее файл в графическом формате с диска и отображающее его на экране, а также сохраняющее этот файл в различных форматах;

  • Класс WMParameters, задающий параметры для внедрения водяного знака методом микширования;

  • Класс TextParameters, задающий параметры для внедрения водяного знака методом нанесения текста;

  • Основной модуль MainForm, выполняющий функции GUI, а также внедряющий водяной знак методами микширования и нанесения текста.

  • Класс LSBInjector, позволяющий внедрить водяной знак методом LSB, а также подтвердить подлинность данного ЦВЗ;

  • Класс PatchworkInjector, позволяющий внедрить водяной знак методом Patchwork, а также подтвердить подлинность данного ЦВЗ;

  • Метод RotateImage, необходимый для поворота ЦВЗ на заданный угол;

  • Метод ChangeBrightness, изменяющий значение яркости данного пиксела.

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

В данном ПС были применены следующие стандартные классы .NET:

Для работы с изображениями – классы Bitmap (инкапсулирует работу с растровым изображением), Graphics (содержит набор операций для работы с графикой, в частности, отображение текста), Color (инкапсулирует работу с ARGB–пикселом);

Для работы с файлами – набор классов пространства имен System.IO;

В качестве PNG был выбран класс Rfc2898DeriveBytes;

Для хранения данных в битовом формате – класс BitArray.

  1. Тестирование и отладка

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

Тестирование данного программного средства производилось на этапе разработки как для отдельных методов и классов, так и для программного средства в целом.

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

Класс WMParameters был разработан первым. На первой стадии он представлял собой один метод полного наложения двух изображений с коэффициентом прозрачности 50%. После того, как было обеспечено надёжное выполнение данного метода (ошибки заключались при расчете коэффициентов сжатия), данный метод был расширен с применением всех параметров, которые можно задать для данного метода.

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

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

Разработка и тестирование алгоритмов внедрения невидимых ЦВЗ прошли довольно гладко. Здесь был проведен анализ хрупкости данных ЦВЗ; обоснована необходимость, по возможности, сохранения их в несжатых форматах. Также необходимо было добиться подлинной невидимости ЦВЗ (неотличимости исходного изображения от измененного), что было произведено с помощью манипулирования с коэффициентами внедрения (количество LSB в одноименном методе было выбрано равным 1: при изменении трех бит изменения становились заметны невооружённым глазом; коэффициент δ был выбран равным 5, количество Patchwork-итераций равным 5000). При таком подходе изображения были практически неотличимы и достигалась достаточная надёжность ЦВЗ.

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

Результаты промежуточного и итогового тестирования приведены в таблице 4.1.

Таблица 4.1. Результаты тестирования ПС TSR Watermark Image

Описание теста

Ожидаемый результат

Наблюдаемый результат

1

2

3

Загрузка файла с диска

На экран выводится загруженное изображение; оно хранится в объекте Bitmap и готово для редактирования

Изображение выведено на экран и может изменять размер. Доступ к объекту Bitmap есть

Сохранение файла на диск

На диске должен присутствовать файл с изображением в заданном формате

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

Сжатие изображения ЦВЗ (для видимых методов)

Коэффициент сжатия должен быть корректно рассчитан для того, чтобы изображение имело заданный размер

Изображение имеет заданный размер и занимает указанную в процентном соотношении часть исходного изображения

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

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

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

Вращение изображения (метод RotateImage)

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

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

Обмен параметрами

с классами видимых изображений

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

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

Обмен параметрами

с классами невидимых изображений

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

Классы внедрения невидимых изображений принимают пути к файлам

Перевод значений из файла в битовый формат

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

Размер контейнера подсчитан правильно; из файла загружается данное число бит в BitArray

Продолжение таблицы 4.1.

1

2

3

Проверка ЦВЗ, внедренного методом LSB

При корректном входном файле ошибка (расхождение) между внедренной и прочитанной информацией не должна превышать 10%

При входном BMP файле это расхождение не превышает доли процента, при сжатом формате – около 50%

Проверка ЦВЗ, внедренного методом Patchwork

При корректном входном файле минимальный вес распознавания 50 при параметрах δ=5, количество итераций 5000

Для сжатых и несжатых форматов вес распознавания корректного файла не менее 50

Внедрение невидимых ЦВЗ

Невидимый ЦВЗ не должен быть визуально различим

Для обоих методов визуально невозможно различить входной и выходной файлы