Skip to content

Задача 1 — последовательная свёртка#1

Open
fUS1ONd wants to merge 13 commits into
mainfrom
dev/task-1
Open

Задача 1 — последовательная свёртка#1
fUS1ONd wants to merge 13 commits into
mainfrom
dev/task-1

Conversation

@fUS1ONd
Copy link
Copy Markdown
Collaborator

@fUS1ONd fUS1ONd commented Apr 30, 2026

Что сделано

  • Ядро библиотеки (core/): Image, Kernel, BorderStrategy (CLAMP), Convolution.convolve(), ImageIO (load/save
    через javax.imageio)
  • Каталог ядер (Kernels.kt): identity, box-blur, gaussian (3×3, 5×5), sharpen (3×3, 5×5), motion-blur 9×9,
    edge-detection, emboss (3×3, 5×5)
  • CLI (task1/Main.kt): -i, -o, -k через kotlinx-cli
  • Тесты: unit + property-based (Kotest checkAll) — 5 свойств (id, нулевой фильтр, композициональность, расширение
    нулями, сдвиг ↔ обратный сдвиг) + roundtrip для ImageIO
  • JMH-бенчмарки (benchmarks/): зависимость времени от размера изображения и от размера ядра
  • Анализ производительности: графики и выводы в docs/task1.md
  • CI (GitHub Actions): прогон ./gradlew test на push/PR
  • Инфраструктура: Gradle 8.10 wrapper, Spotless + ktlint, Makefile (build, test, task1, bench, plots, fmt)

Как проверить

make test           # все тесты
make task1          # запуск на samples/img1.jpg → out/task1.png                                                               
make bench TASK=1   # JMH-бенчмарки (10 минут занимает)                                                                                 
make plots TASK=1   # графики в docs/plots/

fUS1ONd added 13 commits April 30, 2026 18:15
… SHARPEN_5X5, EMBOSS, EMBOSS_5X5

Расширен каталог Kernels для покрытия разных размеров ядер (3×3, 5×5, 9×9) —
необходимо для бенчмарков задач 2 и 3.
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