Skip to content

[FIXED] Кондрашова Виктория. Технология SEQ. Маркировка компонентов бинарного изображения. Вариант 29.#345

Open
neishis wants to merge 1 commit intolearning-process:masterfrom
neishis:kondrashova_v_marking_components_seq
Open

[FIXED] Кондрашова Виктория. Технология SEQ. Маркировка компонентов бинарного изображения. Вариант 29.#345
neishis wants to merge 1 commit intolearning-process:masterfrom
neishis:kondrashova_v_marking_components_seq

Conversation

@neishis
Copy link
Contributor

@neishis neishis commented Mar 16, 2026

Описание

  • Задача: Маркировка компонентов бинарного изображения.
  • Вариант: 29
  • Технология: SEQ
  • Описание
    Реализован алгоритм маркировки связных компонент на бинарном изображении. Изображение представлено как одномерный массив uint8_t, где 0 — объект (чёрный пиксель), 1 — фон. Используется 4-связность (соседи по горизонтали и вертикали).

Алгоритм: для каждого непомеченного пикселя объекта запускается алгоритм, который обходит всю связную компоненту и присваивает ей уникальную метку. Результат — количество компонент и 2D-карта меток, где каждый пиксель объекта имеет номер своей компоненты (1, 2, 3, ...), а фоновые пиксели имеют метку 0.

Сложность: O(W·H) по времени и памяти, где W×H — размеры изображения. Каждый пиксель посещается ровно один раз.

Входные данные:
ImageData: бинарное изображение (вектор uint8_t), ширина и высота

Выходные данные:
Result: количество компонент (count) и 2D-матрица меток (labels)

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

4 функциональных теста: пустое изображение (только фон), одна сплошная компонента, 4 изолированных пикселя, две раздельные области
6 перформанс-тестов на изображениях 512×512: сплошной фон, сплошной объект, шахматная доска (максимум компонент), разреженные точки, горизонтальные полосы, блоки 32×32

Чек-лист

  • Статус CI: Все CI-задачи (сборка, тесты, генерация отчёта) успешно проходят на моей ветке в моем форке
  • Директория и именование задачи: Я создал директорию с именем <фамилия>_<первая_буква_имени>_<короткое_название_задачи>
  • Полное описание задачи: Я предоставил полное описание задачи в теле pull request
  • clang-format: Мои изменения успешно проходят clang-format локально в моем форке (нет ошибок форматирования)
  • clang-tidy: Мои изменения успешно проходят clang-tidy локально в моем форке (нет предупреждений/ошибок)
  • Функциональные тесты: Все функциональные тесты успешно проходят локально на моей машине
  • Тесты производительности: Все тесты производительности успешно проходят локально на моей машине
  • Ветка: Я работаю в ветке, названной точно так же, как директория моей задачи
    (например, nesterov_a_vector_sum), а не в master
  • Правдивое содержание: Я подтверждаю, что все сведения, указанные в этом pull request, являются точными и
    достоверными

@codecov-commenter
Copy link

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.15%. Comparing base (d1f4985) to head (a7a0118).
⚠️ Report is 24 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #345      +/-   ##
==========================================
+ Coverage   78.78%   79.15%   +0.36%     
==========================================
  Files         248      267      +19     
  Lines        8405     9325     +920     
  Branches     3598     3963     +365     
==========================================
+ Hits         6622     7381     +759     
- Misses       1257     1374     +117     
- Partials      526      570      +44     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants