Камалягин Артём. Технология ALL. Построение выпуклой оболочки для компонент бинарного изображения. Вариант 30.#1258
Closed
Lynxll wants to merge 5 commits into
Conversation
…ngle task directory
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #1258 +/- ##
==========================================
+ Coverage 83.69% 84.03% +0.34%
==========================================
Files 669 788 +119
Lines 34251 42765 +8514
Branches 14301 17845 +3544
==========================================
+ Hits 28665 35939 +7274
- Misses 3807 4567 +760
- Partials 1779 2259 +480 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This was referenced May 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Описание
Реализация
Реализовано построение выпуклых оболочек для объектов бинарного изображения в варианте ALL.
Поиск связных компонент выполняется последовательно: методом обхода в глубину (DFS) по 4-связности проходим по бинарному изображению и собираем для каждой компоненты множество принадлежащих ей пикселей.
Список компонент делится на три диапазона по индексам (
count/3,2*count/3); для каждого диапазона строятся оболочки параллельно:#pragma omp parallel for,schedule(dynamic));std::thread, число потоков черезppc::util::GetNumThreads(), статическое разбиение на чанки;tbb::parallel_for,tbb::blocked_range<size_t>).Для каждой компоненты применяется алгоритм Грэхема (выбор опорной точки, сортировка по полярному углу с использованием векторного произведения, удаление коллинеарных точек, проход стеком с проверкой левого поворота). Компоненты обрабатываются независимо, синхронизация не требуется — результат пишется в
hulls[i].Чек-лист
Important
Прошу влить этот PR #1442 , а не #1258 / #993 / #996 / #1186.
CI пройден. #993, #996 и #1186 - полностью прошли CI и закрыты - не для merge(код уже здесь).
#1258 тоже полностью прошел CI, но не закрыт - на случай, если этот PR #1442 не пройдет CI
Если влить его первым могут, быть конфликты и повторный полный CI на этом PR
Что в закрытых и этом PR:
• #993 - SEQ + OMP, объединение в одну директорию (убрал лишнюю директорию
kamalagin_a_binary_image_convex_hull_omp)• #996 - TBB
• #1186 - STL
• #1258 - Старая реализация ALL (текущий PR)