Skip to content

Исхаков Дамир. Технология OMP. Линейная фильтрация изображений (вертикальное разбиение). Ядро Гаусса 3x3. Вариант 25#360

Open
Chokoladicus wants to merge 3 commits intolearning-process:masterfrom
Chokoladicus:iskhakov_d_vertical_gauss_filter_omp

Conversation

@Chokoladicus
Copy link
Contributor

@Chokoladicus Chokoladicus commented Mar 16, 2026

Описание

  • Задача: Линейная фильтрация изображений (вертикальное разбиение). Ядро Гаусса 3x3.
  • Вариант: 25
  • Технология: OMP
  • Описание

Была реализована задача "Линейная фильтрация изображений (вертикальное разбиение). Ядро Гаусса 3x3". Алгоритм представляет собой параллельную реализацию обработки матрицы используя технологию OMP с помощью вертикального разбиения ("изображение" в оттенках серого) с использованием ядра Гаусса

{{1, 2, 1}
{2, 4, 2}
{1, 2, 1}}

последовательным перебором пикселей матрицы, вычисляя сумму значений и деление итогового результата на 16 (согласно условию ядра Гаусса).

Обработка границ реализована с помощью отражения. Пример: Если пиксель, для которого мы высчитываем новое значение находится на границе, а левее или правее него матрица кончается, алгоритм берёт значение равное отраженному значению, то есть не по индексу 0 - 1, а по индексу 1 или же не 255 + 1, а 255 - 1. Это необходимо для корректной обработки границ и углов

В данной реализации выполнено полноценное разбиение на "полосы", подразумевающее получение общего числа столбцов, после чего идет неявное разбиение на вертикальные полосы, для которых считаются значения пикселей. Каждый поток может обратится к пикселю из полосы другого потока для вычисления значения своего пикселя, обращение к пикселю чужой полосы полностью безопасно, т.к обращение идет к исходным данным

Чек-лист

  • Статус 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

❌ Patch coverage is 0% with 22 lines in your changes missing coverage. Please review.
✅ Project coverage is 78.96%. Comparing base (97dd371) to head (70d299d).

Files with missing lines Patch % Lines
...khakov_d_vertical_gauss_filter/omp/src/ops_omp.cpp 0.00% 22 Missing ⚠️

❌ Your patch status has failed because the patch coverage (0.00%) is below the target coverage (95.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #360      +/-   ##
==========================================
- Coverage   79.16%   78.96%   -0.20%     
==========================================
  Files         267      268       +1     
  Lines        9325     9347      +22     
  Branches     3963     3967       +4     
==========================================
- Hits         7382     7381       -1     
- Misses       1374     1396      +22     
- Partials      569      570       +1     

☔ 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