Skip to content

Task1 sequential#1

Open
DaryaNechaeva wants to merge 16 commits into
mainfrom
task1-sequential
Open

Task1 sequential#1
DaryaNechaeva wants to merge 16 commits into
mainfrom
task1-sequential

Conversation

@DaryaNechaeva
Copy link
Copy Markdown
Collaborator

Описание

  • Реализовано последовательное применение свёртки к RGB изображениям.
  • Обработка границ: циклическое замыкание (wrap-around).
  • Поддерживаемые форматы: BMP, PNG, JPEG (загрузка и сохранение через stb_image/stb_image_write).
  • Доступные фильтры: identity, blur, gaussian, sharpen, edges, emboss.
  • Размеры ядер: 3×3, 5×5, 7×7, 9×9. Выбор осуществляется через CLI с суффиксами, по умолчанию 3×3(например, --filter gaussian, --filter edges9).

Тестирование

  • Точность вычислений: ручная верификация циклического сдвига (wrap-around) на фиксированной матрице 3×3.
  • Базовые инварианты: тождественность (identity сохраняет изображение), нулевой фактор (строго нулевой результат).
  • Свойства композиции: проверка ассоциативности и обратимости последовательных сдвигов.
  • Инвариантность ядра: подтверждение, что дополнение ядра нулями до большего размера не меняет результат.
  • Устойчивость: стресс-тест на 12 комбинациях ширины/высоты с рандомизированными пикселями.

Анализ производительности

  • Методика: 3 запуска по 100 повторений для фильтра sharpen для каждого из ядер размером: 3×3, 5×5, 7×7, 9×9
  • Тестовое изображение: [images/input/white_cat.jpeg].
  • Результаты: среднее время выполнения в README.md.

Сборка и использование

  • Сборка: make
  • Запуск тестов: make test
  • Базовое применение: ./conv input.png output.jpg --filter gaussian
  • Фильтр большего размера: ./conv photo.bmp result.png --filter edges7
  • Справка: ./conv -h

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant