Skip to content

comprock15/ComputerGraphics

Repository files navigation

Компьютерная графика

Лабораторная работа №2. Цветовые пространства. Преобразование цветовых пространств

1. Преобразовать изображение из RGB в оттенки серого. Реализовать два варианта формулы с учетом разных вкладов R, G и B в интенсивность (см. презентацию). Затем найти разность полученных полутоновых изображений. Построить гистограммы интенсивности после одного и второго преобразования.
изображение

2. Выделить из полноцветного изображения каждый из каналов R, G, B и вывести результат. Построить гистограмму по цветам (3 штуки).
изображение

3. Преобразовать изображение из RGB в HSV. Добавить возможность изменять значения оттенка, насыщенности и яркости. Результат сохранять в файл, предварительно преобразовав обратно.
изображение

Лабораторная работа №3. Растровые алгоритмы

1. Заливка и выделение границы.

  • 1а. Рекурсивный алгоритм заливки на основе серий пикселов (линий) заданным цветом.
    изображение

  • 1б. Рекурсивный алгоритм заливки на основе серий пикселов (линий) рисунком из графического файла. Файл можно загрузить встроенными средствами и затем считывать точки изображения для использования в заливке. Рассмотреть случаи, когда файл небольшого размера и заливается циклически, и когда большой. Масштабировать не нужно. Область рисуется мышкой, произвольной формы. Внутри могут быть отверстия. Точка, с которой начинается заливка, задается щелчком мыши.
    изображение

  • 1в. Выделение границы связной области. На вход подается изображение. Граница связной области задается одним цветом. Имея начальную точку границы, организовать её обход, занося точки в список в порядке обхода. Начальную точку границы можно получать любым способом. Для контроля полученную границу прорисовать поверх исходного изображения.
    изображение

2. Реализовать рисование отрезка: целочисленным алгоритмом Брезенхема и алгоритмом ВУ.
изображение

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

Лабораторная работа №4. Аффинные преобразования на плоскости и вспомогательные алгоритмы
  • Создание полигонов через клики мышью. Точка и ребро считаются полигонами с одной и двумя вершинами соответственно.
  • Очистка сцены (удаление всех полигонов).
  • Применение аффинных преобразований к полигону (Все преобразования должны быть реализованы матрицами!):
    • Смещение на dx, dy
    • Поворот вокруг заданной пользователем точки
    • Поворот вокруг своего центра
    • Масштабирование относительно заданной пользователем точки
    • Масштабирование относительно своего центра
  • Поиск точки пересечения двух ребер (добавление второго ребра мышкой, динамически).
  • Проверка принадлежит ли заданная пользователем (с помощью мыши) точка выпуклому и невыпуклому полигонам
  • Классифицировать положение точки относительно ребра (справа или слева)
LAB4.mp4