Задание 1. Основы CUDA
Номер варианта определяется списком подгруппы у преподавателя.
1. Сделать цветную картинку черно-белой
2. Применить гауссово размытие к изображению заданное пользователем количество раз
3. Применить к заданному каналу изображения операцию "негатив"
4. Применить к изображению детектор границ, вычислив в каждой точке модуль градиента
5. Увеличить контрастность изображения
6. Применить гамма-коррекцию к изображению
7. Увеличить насыщенность изображения
8. Уменьшить количество цветов изображения до n^3
9. Увеличить яркость заданного цветового канала изображения
10. Убрать красные глаза на изображении в заданной прямоугольной области
11. Увеличить размер изображения, используя интерполяцию по методу ближайшего соседа
12. Применить растягивание изображения по горизонтали
13. Применить операцию горизонтального отражения к изображению
14. Применить операцию вертикального отражения к изображению
15. Найти на изображении яркость самого темного и самого светлого пикселей
16. Применить операцию линейного расширения диапазона яркостей пикселей от заданного [a;b] до [0; 255]
17. Применить операцию обнуления заданной компоненты изображения
18. Заменить на изображении один заданный цвет другим
19. Оценить количество пикселей заданного цвета
20. Применить заданную перестановку к каналам изображения
21. Путем подсчета модуля градиента цвета выделить области резкой смены цвета на изображении
22. Примените к изображению операцию искажения "рыбий глаз". Формулы можно найти, например, тут.
23. Запрограммируйте наложение одного изображения сверху на другое с заданным пользователем коэффициентом полупрозрачности. Для простоты можно использовать изображения одинаковых размеров.
Команда компиляции (если вы не используйте CUDA Nsight):
nvcc -O2 file.cu -o file.exe
Для работы с OpenCV командная строка чуть сложнее:
nvcc -O2 `pkg-config --cflags opencv4` file.cu -o file.exe `pkg-config --libs opencv4`
Если компилятор возвращает ошибку про отсутствующую функцию memcpy (несовместимость CUDA SDK с некоторыми версиями GCC), добавьте при компиляции опцию