48629 (Разработка программного обеспечения для фильтрации растровых изображений)

2016-07-29СтудИзба

Описание файла

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

Онлайн просмотр документа "48629"

Текст из документа "48629"

РЕФЕРАТ

Розробка програмного забезпечення для фільтрації растрових зображень. Дипломний проект з дисципліни «Технології програмування ГКС». Пояснювальна записка - Харків: ХНУРЕ. - 2009. – 62 с.

Предмет дослiдження: растровi зображення.

Мета проекту – систематизацiя, поглиблення i застосування знань по технологiям программування, отриманих на лекцiйних та лабораторних заняттях.

Метод дослiдження – вивчення лiтератури, написання i тестування програми на комп’ютерi.

Програма призначена для фільтрації растрових зображень.

В роботi розглядаються питання розробки програмного забезпечення для фільтрації растрових зображень. ПЗ виконує корекцію кольорів відкритих растрових зображень за допомогою фiльтрiв. Графiчнi фiльтри реалiзованi на основi точечних i просторових (матричних) перетворень.

Програмне забезпечення реалізовано у системі програмування Microsoft Visual С++ 6.0.

Ключові слова:

Растрове зображення, DDB, DIB, BMP, матриці перетворень, MDI-інтерфейс, графічні фільтри

The abstract

Development of the program maintenance for filtration of raster’s images. The course project on discipline “The Technology of Programming the FKS”. An explanatory note - Kharkiv:KNURE.-2009.- 62 р.

Object of research: raster images.

The purpose of the course project – the ordering, deepening and application of the knowledge on technologies of the programming, received on lectures and laboratory researches.

The method of research – studying the literature, writing and testing the program on the computer.

The program is assigned for filtration of raster’s images.

In this work, the questions of development of a program maintenance for filtration of raster’s images are considered. The PM realizes the correction of a color of opened raster images, with the help of a filters. Graphic filters are realized on the basis of a dot and spatial (matrix) transformations.

The program maintenance is realized in the system of programming Microsoft Visual C ++ 6.0.

Key words:

The raster image, DDB, DIB, BMP, matrixes of transformations, the MDI-interface, graphic filters.

ВВЕДЕНИЕ

Компьютерная графика объединяет довольно широкий круг операций по обработке графической информации с помощью компьютера. Компьютерной графике отводится огромная роль в современном мире.

В компьютерной графике можно выделить несколько основных направлений:

- Визуализация научных (расчетных или экспериментальных) данных. Большинство современных математических программных пакетов (например, Мар1е, Маtlab, МаthCAD) имеют средства для отображения графиков, поверхностей и трехмерных тел, построенных на основе каких-либо расчетов. Кроме того, графическая информация может активно использоваться в самом процессе вычислений.

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

- Распознавание образов. Способность распознавать абстрактные образы считают одним из важнейших факторов, определившим развитие мыслительных способностей человека. Задача распознавания и классификации графической информации является одной из ключевых и при создании искусственного интеллекта. Уже в наши дни компьютеры распознают образы повсеместно (анализ аэро- и космических фотоснимков; системы сортировки, наведения и т. д.). Возможно, самый известный пример распознавания образов - сканирование и перевод "фотографии" текста в набор отдельных символов, формирующих слова. Такую операцию позволяет выполнить программное обеспечение многих современных сканеров.

- Изобразительное искусство. К этому направлению можно отнести разнообразную графическую рекламу: от текстовых транспарантов и фирменных знаков до компьютерных видеофильмов, обработку фотографий, создание рисунков, мультипликацию и т. д. В качестве примера популярных и довольно востребованных программ из этой области компьютерной графики можно назвать АdobePhotoshop (обработка растровых изображений), СогеlDraw (создание векторной графики), 3DS Мах (трехмерное моделирование).

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

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


1. АНАЛИЗ ТЕХНИЧЕСКОГО ЗАДАНИЯ

В данной работе разрабатывается ПО для фильтрации растровых изображений. Графический формат BMP является аппаратно-независимым (devise-independent bitmap DIB) и наиболее удобным для данного вопроса. Для разработки программ работы с битовыми изображениями необходимо разработать свой собственный класс, поддерживающий файлы *.bmp. Кроме открытия растровых изображений программа должна выполнять цветокоррекцию открытых изображений. Цветокоррекция выполняется при помощи графических фильтров.

Для реализации поставленной задачи в проекте целесообразно создать MDI приложение (с многодокументным интерфейсом). В разрабатываемом ПО реализуется возможность масштабирования открытого файла.

Для обработки изображений при помощи фильтров необходимо предусмотреть, как они будут уживаться между собой и взаимодействовать с остальными модулями программы. Фильтры можно реализовать в виде классов, производных от какого-то одного базового класса. В базовом классе следует определить набор методов, общих для всех фильтров. Процесс преобразования изображения выносится в отдельный поток выполнения программы. Это дает возможность контролировать не только область применения фильтра, но и продолжительность выполнения операции, т.е. возможность остановить выполнение преобразования.


2. ОПИСАНИЕ ГРАФИЧЕСКОГО ФОРМАТА

2.1 Общая информация о графическом формате

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

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

Далее под растром будем понимать массив пикселов (массив числовых значений). Для обозначения массива пикселов часто используется термин bitmap (битовая карта). В bitmap каждому пикселу отводится определённое число битов (одинаковое для всех пикселов изображения). Это число называется битовой глубиной пиксела или цветовой глубиной изображения, т.к. от количества битов, отводимых на один пиксел, зависит количество цветов изображения. Наиболее часто используется цветовая глубина 1, 2, 4, 8, 15, 16, 24 и 32 бита.

Растровый формат используется для хранения растровых данных. Файлы такого типа особенно хорошо подходят для хранения изображений реального мира, например оцифрованных фотографий. Растровые файлы содержат битовую карту изображения и ее спецификацию. Наиболее распространенные растровые форматы: ВМР, ТIFF, GIF, РСХ, JРЕС.

В данном проекте будет использоваться ВМР формат.

2.2 Общее описание формата ВМР

Microsoft Windows Bitmap (ВМР) - собственный растровый формат операционной системы Windows. Формат основан на внутренних структурах представления растровых данных Windows. Формат совершенствовался и развивался по мере появления новых версий Windows. Первоначально был очень простым, содержал лишь растровые данные и не поддерживал сжатие. Растровые данные представляли собой индексы в цветовой палитре, которая была фиксированной и определялась графической платой. Поэтому этот формат называют аппаратно-зависимым (Device Dependent Bitmap, DDB), он был ориентирован на графические платы для IВМ РС (СGА,EGA, НERCULES) и другие.

Развитием формата ВМР стало введение в него поддержки изменяемой цветовой палитры. Это позволило хранить информацию о цветах вместе с растровыми данными. Такое изменение формата позволило сделать хранимые изображения аппаратно-независимыми (Devise Independent Bitmap, DIB). Иногда аббревиатуру DIВ используют как синоним ВМР.

2.3 Структура файла ВМР

Файлы ОБВ исходного формата ВМР содержали два раздела: заголовок файла и растровые данные (рис. 2.3.1).

Заголовок файла

Растровые данные

Рисунок 2.3.1 - Структура файла DDВ исходного формата ВМР

Файлы более поздних версий содержат четыре раздела: заголовок файла, информационный заголовок растра, палитру цветов и растровые данные (рис. 2.3.2).

Заголовок файла

Заголовок растра

Палитра цветов

Растровые данные

Рисунок 2.3.2 - Структура ВМР-файла

Рассмотрим в деталях структуру данных файла формата ВМР версии 3.x, появившегося с операционной системой Microsoft Windows 3.x. Этот формат поддерживается большинством существующих в настоящее время приложений.

Все версии формата ВМР начинаются с 14-байтового заголовка-структуры.

Листинг 2.3.1 - Структура данных файла формата ВМР версии 3.x

BITMAPFILEHEADER :

Typedef struct tagBITMAPHEADER

{ WORD bfType; //тип файла, должен быть 4d42h («ВМ»)

DWORD bfSise //размер файла в байтах

WORD bfReserved1; //зарезервировано, должен быть 0

WORD bfReserved2; // зарезервировано, должен быть 0

DWORD bfOffBits; //смещение в байтах до начала растровых данных

} BITMAPFILEHEADER;

// За заголовком файла следует заголовок растра. Его длина составляет 40 байтов.

Typedef struct tagBITMAPINFOHEADER

{DWORD biSize; //размер этого заголовка в байтах

LONG biWidth ; //ширина изображения в пикселах

LONG biHeight; //высота изображения в пикселах

WORD biplanes; //количество цветовых плоскостей

WORD bibitCount; //количество битов на пиксел

DWORD biCompression; //используемые методы сжатия

DWORD biSizeImage; //размер растра в байтах

LONG biXPelsPerMeter; //вертикальное разрешение

LONG biYPelsPerMeter; //горизонтальное разрешение

DWORD biClrUsed; //количество цветов в изображении

DWORD biClrImportant; //минимальное количество «важных» цветов

} BITMAPINFOHEADER

//За заголовком растра может следовать палитра цветов, состоящая из //последовательности 4-байтовых структур RGBQUARD

Typedef struct _RGBQUARD

{BYTE rgbBlue; //синяя составляющая

BYTE rgbGreen; // зелёная составляющая

BYTE rgbRed; //красная составляющая

BYTE rgReserved; //заполнитель(всегда 0)

}RGBQUARD;

//Структура BITMAPINFOHEADER и структуры RGBQUARD собираются в структуре BITMAPINFO:

Typedef struct tagBITMAPINFO

{BITMAPINFOHEADER bmiHeader;

RGBQUARD bmiColors[1];

} BITMAPINFO;

После структуры BITMAPINFO на расстоянии bfOffBits (поле структуры BITMAPFILEHEADER) от начала файла начинаются растровые данные. Растровые данные представляют собой индексы в палитре цветов (в случае если bibitCount равно 1, 4, 8) или реальные значения цветов пикселов (в случае если bibitCount равно 24). Если bibitCount равно 24, то каждый пиксел представляется тремя байтами: первый байт - интенсивность синего цвета, затем по байту на зеленый и красный цвет. Этот формат цвета называется RGB888 или RGB24.

Растровые данные, соответствующие одной строке пикселов изображения, вне зависимости от формата цвета должны быть выровнены на границу двойного слова DWORD, т. е. каждая строка пикселов должна описываться целым числом двойных слов. Например, строка из 5 пикселов по 24 бита (3 байта) на пиксел может быть описана 15 байтами, но длина строки растровых данных в формате ВМР должна быть 16 байтов. Последний байт будет служить лишь для целей выравнивания.

Формат ВМР версии 3.x имеет разновидность (для Windows NT), предназначенную для хранения растровых данных с пиксельной глубиной 16 и 32 битов. Этот формат имеет точно такую же структуру заголовка растра BITMAPINFOHEADER. Его длина составляет 40 байтов. Отличие заключается в том, что поле bibitCount может принимать значения 16 и 32.

При пиксельной глубине 16 битов для хранения цвета пиксела отводится два байта (слово - тип WORD), каждому компоненту цвета пиксела отводится по 5 битов (формат цвета RGВ555). Младшие 5 битов задают интенсивность синего цвета, затем по 5 битов на зеленый и красный цвет, старший бит в слове не используется.

При пиксельной глубине 32 бита для хранения цвета пиксела отводится 4 байта (двойное слово - тип DWORD). При этом на каждый компонент цвета отводится по 8 бит, так же как и при 24-битной глубине, а старший байт в DWORD не используется (формат цвета RGВ888).

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