- •Лекция 1
- •1.1. Области, связанные с обработкой изображения
- •1.2. Изображение и его машинное представление
- •1.3. Описание сцены и его машинное представление
- •Представление поверхностных моделей.
- •Лекция 2
- •Лекция 2,3
- •Лекция 4,5 Преобразования на плоскости и в пространстве
- •Лекция 6-7-8 Элементы вычислительной геометрии на плоскости.
- •Отсечение отрезка на плоскости
- •Алгоритм Сазерленда-Коэна
- •Отсечение полигона выпуклым окном
- •Плоскость
- •Полигон
- •Лекция 9-10-11-12 Удаление невидимых линий и поверхностей
- •Лекция 13 Наложение текстур
- •Лекция 14 Освещение
- •Лекция 15 Устранение лестничного эффекта (Antialiasing)
- •Лекция 16 Дискретизация изображений
- •Палитры и оптимизация палитр.
- •Метод квантования цветов медианным сечением.
- •Лекция 17,18 Форматы растровых файлов
- •Сжатие графической информации
- •Типы изображений.
- •Требования к алгоритмам компрессии.
- •Критерии сравнения алгоритмов.
- •Алгоритмы архивации без потерь.
- •Лекция 19 Классы изображений и переходы между ними
- •Сегментация изображений
- •Построение контура
- •Построение скелета (остова) области
- •Сегментация кривых
- •Интерполирование
- •Заливка областей
- •Сглаживание
- •Лекция 20 Распознавание образов Понятие образа
- •Проблема обучения распознаванию образов
- •Геометрический и структурный подходы.
- •Гипотеза компактности
- •Самообучение.
- •Перцептроны
- •Р Классы (образы) аспознавание графических образов
- •Лекция 21 Аппроксимация кривых и поверхностей сплайнами
- •Сплайн-функции одной переменной
- •Кривые Безье
- •Где nk(t) – функциональные весовые множители.
- •Рациональные в-сплайновые поверхности
- •Лекция 22 Устройства ввода и вывода графической информации
- •Мониторы
- •Принтеры
- •Графопостроители
- •Сканеры
- •Планшеты и указатели
- •Графические акселераторы
- •Лекция 23 Архитектура графических систем
Лекция 19 Классы изображений и переходы между ними
Классы изображений:
-
Тоновые и цветные изображения.
-
Двухуровневые или представленные в нескольких цветах изображения.
-
Непрерывные кривые и линии.
-
Точки и многоугольники.
Преобразования изображений:
1->2 – Сегментация изображений. Выделяются области приблизительно одной яркости и цвета. Возможно выделение текстуры.
2->3 – Построение контура, прореживание – граф, остов области.
3->4 – Сегментация кривых. Отыскание критических точек контура (углов многоугольника).
4->3 – Интерполирование – проведение гладкой кривой через множество точек, аппроксимация - проведение гладкой кривой вблизи множества точек.
3->2 – Заливка областей.
2->1 – Сглаживание – фильтры и зашумление.
Сегментация изображений
При выделении, одинаково закрашенных областей, обычно сначала строят гистограмму распределения яркости (для черно-белых изображений) или распределение цветов в цветовом пространстве (для цветных, как при построении палитры). После этого выделяют области приблизительно одинакового цвета и заменяют все соответствующие им цвета на один средний. Можно выделять и текстуру, например, штриховку, но это несколько сложнее.
Построение контура
Соседние к данному пикселы можно разделить на н-соседей – имеют общую сторону и к-соседей – касаются углом. Соответственно и контур может быть как к-контуром (8-ми связным), в него входят пикселы области имеющие по крайней мере одного н-соседа, расположенного вне данной области. Так и н-контуром (4-х связным), в него входят пикселы области имеющие любого соседа (н или к), расположенного вне данной области.
Контуры кодируются с помощью кодов направления, сначала записываются абсолютные координаты начала контура, а затем коды определяющие положение следующего пиксела в контуре.
3 |
2 |
1 |
4 |
P |
0 |
5 |
6 |
7 |
Для данной фигуры (начиная с пиксела с 2-ой штриховкой) это будет (0,0,0,7,5,5,4,4,4,2,2,1). Это потребует 12*3=48 бит.
Если применять дифференциальные коды, то можно немного сократить размеры памяти для хранения контура. Дифференциальные - это не само направление, а его отличие от предыдущего (начальное направление можно взять постоянным, например, 0-ое). Это тоже 8 кодов 0,+1,-1,+2,-2,+3,-3,+4) . За счет того, что обычно направление сохраняется или изменяется несильно, то имеет смысл использовать коды с переменной длиной 0 – 0, +1 – 100, -1 – 101,+2 – 1100,-2 – 1101,+3 – 1110,-3 – 11110,+4 – 11111.
Построение скелета (остова) области
Остов области это множество точек области, имеющих белее одного ближайшего соседа на границе этой области. Остовные точки являются центрами окружностей, полностью покрываемых областью.
Наиболее правильно было бы построить непрерывные кривые вдоль границ области и рассчитывать остов основываясь на расстоянии от точек области до этих кривых. Но можно рассчитать примерный остов и на основе пиксельной информации. Для области пикселов сначала определяется контур, затем в нем определяются остовные пикселы, а все остальные – удаляются. Затем алгоритм продолжается, до тех пор, пока картинка не останутся только остовные пикселы. Признаком того, что пиксел остовный можно считать то, что он не имеет обоих соседей по одной из осей (граница подошла к нему с обеих сторон одновременно, т.е. до нее одинаковое расстояние).
Но может быть случай, когда такая проверка недостаточна, такое происходит если остается линия в шириной в 2 пиксела. Т.к. пикселы обоих сторон такой линии являются пикселами контура и не удовлетворяют вышеприведенному условию, они будут удалены и от линии ничего не останется, хотя должен быть остов, проходящий точно по ее центру.
Для правильной обработки таких случаев следует проверять еще две комбинации пикселов.