Diplom_29-06 (1221240), страница 5

Файл №1221240 Diplom_29-06 (Исследование алгоритмов кодирования изображений с целью обеспечения качества обслуживания в беспроводных сетях) 5 страницаDiplom_29-06 (1221240) страница 52020-10-05СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

И также можно вычислить отношение сигнал/шум, иначе называемый SNR (SNR – signal to noise ratio):

где: RMSE – корень от среднеквадратического отклонение значений пикселей сжатого изображения от оригинала, иначе говоря

    1. Требования к графическому интерфейсу пользователя

Графический пользовательский интерфейс является разновидностью пользовательского интерфейса, в котором присутствуют элементы визуального интерфейса (меню, кнопки, значки, списки и различные формы), представленные пользователю на дисплее для лучшего взаимодействия с различными устройствами. Правильно организованный интерфейс способствуют привлечению большего числа пользователей. Цель дизайна – представление готового объекта.

К интерфейсу готового программного продукта предъявляются следующие требования [32].

  • должен быть интуитивно понятным, простым и логичным:

  • должен соответствовать задачам пользователя;

  • должен соответствовать выбранной технологии;

  • обеспечивать высокую скорость работы пользователя. Элементы управления должны быть заметными и понятными;

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

  • название элемента должно отражать выполняемую им функцию;

  • названия элементов должны быть краткими, но понятными пользователю;

  • соблюдать пропорции;

  • командные кнопки, управляющие окном, например, «Ок», «Отмена», «Применить», «Закрыть») должны быть расположены либо внизу окна, либо в правой его части (т.е. в той части окна, которая сканируется взглядом в последнюю очередь).

    1. Проектирование графического интерфейса пользователя

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

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

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

Схематическое представление графического интерфейса представлено на рисунке 12.

Рисунок 12 – Схема графического интерфейса

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

    1. Требования к функционалу приложения

После запуска программы «.exe» файла отображается главное окно. Все действия меню вызываются нажатием левой кнопки мыши. Весь функционал данной программы состоит из:

  • кнопка загрузки графического файла;

  • окно загрузки исходного изображения;

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

  • преобразованное и получаемое изображения;

  • полученные выходные характеристики.

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



Рисунок 13 – Диаграмма деятельности приложения

  1. Реализация ПРИЛОЖЕНИЯ

    1. Обоснование выбора технологий реализации

      1. Обоснование выбора языка программирования

В качестве языка программирования приложения был выбран С++, который широко используется для разработки различного рода программных комплексов в настоящее время, поскольку он обладает следующими чертами [31]. Более развита поддержка объектно-ориентированного и обобщенного программирования. Поддерживает и процедурное, и объектно-ориентированное, и обобщённое программирование. Обеспечивает модульную реализацию программ, раздельную компиляцию, обработку исключений.

      1. Обоснование выбора среды разработки

В качестве среды разработки выбрана свободная кроссплатформенная среда разработки Code::Blocks [13]. Code::Blocks написана на С++ и использует библиотеку wxWidgets для реализация графического пользовательского интерфейса. Имея открытую архитектуру, может масштабироваться за счёт подключаемых модулей. Поддерживает языки программирования С, С++, D (с ограничениями).

Code::Blocks разрабатывается для Windows, Linux и Mac OS X. Среду можно собрать из файлов исходного кода для использования на вычислительной машине, работающей под управлением практически любой Unix-подобной системы.

      1. Библиотеки OpenCV и wxWidgets

С целью разработки приложения для исследования алгоритмов кодирования изображений будут использоваться библиотеки OpenCV и wxWidgets.

Библиотека OpenCV (Open Source Computer Vision Library) с открытым исходным кодом содержит набор типов данных, более 500 функций и классов для обработки изображений и видео-потоков алгоритмами компьютерного зрения в реальном времени [23].Она может свободно использоваться в академических и коммерческих целях, поскольку распространяется на условиях лицензии BSD - (Berkeley Software Distribution). Программное обеспечение созданное как дополнения к операционной системе UNIX(R) компании AT&T. На основе версии 4.4BSD-Lite были созданы несколько операционных систем с открытыми исходными кодами. В их состав включены разработки других проектов, среди которых особо следует выделить Проект GNU. Вот что такое собственно операционная система BSD:.

OpenCV написана на языке высокого уровня (C/C++) и содержит алгоритмы для интерпретации изображений, калибровки камеры по эталону, устранения оптических искажений, определения сходства, анализаперемещения объекта, определения формы объекта и слежения за объектом, 3D-реконструкции, сегментации объекта, распознавания жестов и т.д.

В соответствии с целью выполнения ВКР для разработки приложения будут использованы функции

  • открытия изображений из стандартных файлов (.jpg, .bmp);

  • изменения цветовой схемы изображения;

  • работы с элементами изображения.

Кроме того библиотека OpenCV позволяет конвертировать данные об изображении в другие форматы, что позволяет выводить изображение на экран так, как оно выглядит в массиве. В программе использованы многие форматы представления массивов (CV_8UC3, CV_8UC1, CV8SC3). Они позволяют создать массивы данных различного размера и типа данных, в том числе и беззнаковых.

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

Библиотека wxWidgets (wxWindows) является кроссплатформенной библиотекой инструментов с открытым исходным кодом для разработки кроссплатформенных на уровне исходного кода настольных или мобильныхприложенийс графическим пользовательским интерфейсом (GraphicUserInterface, GUI[34]. Она распространяется на условияхлицензии, базирующейся на LGPL (Lesser General Public License).

GNU Library General Public License (Стандартная общественная лицензия GNU для библиотек) – лицензия на свободное программное обеспечение, одобренная Фондом свободного программного обеспечения и разработанная как компромисс между GNU General Public License и простыми разрешительными лицензиями, такими как BSD License и MIT License

Преимущества работы с wxWidgets:

  • переносимость разработанных приложений под большинство современных ОС безо всяких изменений;

  • быстрое создание GUI;

  • отсутствие необходимости в предустановке виртуальной машины Java (JVM), интерпретатора и т.д.;

  • относительно небольшой размер скомпилированного приложения;

  • умеренное потребление памяти и вычислительных ресурсов процессора;

  • возможность использовать для разработки приложений на языкахPython, Ruby, Perl, Haskell, Erlang и пр.

    1. Реализация GUI с использованием wxWidgets

Разработка интерфейса начинается с редактора форм Code::Blocks , где находятся элементы для создания графического интерфейса, и которые в последующем будут обьединены с кодом C++ для реализации различных функций. Сам интерфейс предствлен на рисунке 14:

Рисунок 14 – Интерфейс Code::Blocks

Левая часть экрана поделена на две части:

  • вкладки ресурсов, проектов, файлов;

  • свойства проекта.

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

Окно свойств проекта позволяет установить свойства компоненты, с которой ведется работа или выбрать события, такие, как функция «OnClick» при реализации кнопки. Использование библиотеки WxWidgets позволяет автоматизировать процесс.

Сам интерфейс приложения состоит из трех StaticBitmap, куда будут помещены изображения:

  • исходное изображение;

  • преобразованное изображение;

  • получаемое изображение.

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

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

  • коэффициент сжатия;

  • максимальное отклонение сжатого изображения от оригинала;

  • среднеквадратическое отклонение значений пикселей сжатого изображения от оригинала;

  • соотношения сигнал/шум (PSNR);

  • соотношения шум/сигнал (SNR).

Реализация графического интерфейса графического приложения представлена рисунке 15.

Рисунок 15 – GUI приложения

    1. Реализация алгоритмов

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

Кнопка «Загрузить изображение» – позволяет пользователю выбрать файл из любой директории на персональном компьютере. Эта функция была реализована для удобства работы с данным приложением, а также для того чтобы можно было расширить поле поиска нужного изображения.

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

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

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

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

Характеристики

Список файлов ВКР

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7021
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее