Skip to content

Commit 53c36a7

Browse files
Tasks and general instructions.
1 parent 109c7d0 commit 53c36a7

File tree

1 file changed

+43
-45
lines changed

1 file changed

+43
-45
lines changed

README.md

Lines changed: 43 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -56,59 +56,57 @@ __Цель данной работы__ - изучить базовые прим
5656

5757
__Основные задачи:__
5858

59-
1. Изучить базовые методы класса `cv::Mat` (модуль `opencv_core`), который
60-
применяется для представления изображений.
61-
2. Рассмотреть основные операции работы с изображениями:
62-
1. Создание изображения с помощью конструкторов или метода `create` класса
63-
`Mat`.
64-
2. Загрузка изображения (функция `imread`).
65-
3. Сохранение изображения (функция `imwrite`).
66-
4. Отображение изображения (функции `imshow`, `waitKey`).
67-
5. Копирование изображения (метод `copyTo` класса `Mat`).
68-
6. Методы фильтрации (размытие, сглаживание и др.).
69-
7. Преобразование изображения в различные цветовые пространства (функция
70-
`cvtColor`).
71-
3. Изучить и реализовать с использованием OpenCV различные способы
72-
выделения контуров на изображении:
73-
1. Бинаризация изображения (функция `threshold`) + поиск контуров
74-
(функция `findContours`). Примечание: для отображения контуров
75-
следует использовать функцию `drawContours`.
76-
2. Морфологический градиент (функция `morphologyEx`).
77-
3. Оператор Собеля (функция `Sobel`).
78-
4. Оператор Лапласа (функция `Laplacian`).
79-
5. Детектор ребер Канни (функция `Canny`). Примечание: перед применением
80-
фильтра Канни потребуется выполнить фильтрацию и преобразование
81-
изображения в оттенки серого.
82-
4. Разработать графический интерфейс, удовлетворяющий следующим требованиям:
83-
1. Отображение исходного изображения.
84-
2. Отображение изображения, на котором отображены контуры.
85-
3. Наличие набора переключателей (кнопок) для применения различных
86-
методов выделения контуров.
59+
1. Обеспечить возможность изменения положения региона фильтрации со временем.
60+
2. Добавить третью кнопку, чтобы обеспечить возможность сохранения текущего
61+
изображения окна (пара изображений).
62+
3. Добавить несколько дополнительных кнопок, позволяющих изменять тип фильтра:
63+
- Перевод центральной части изображения в оттенки серого вместо медианной
64+
фильтрации.
65+
- Поддержка режима пикселизации центральной области изображения (подобно
66+
тому, как на телевидении скрывают лицо человека).
67+
- Применение Канни детектора для определения ребер в центральной части
68+
исходного изображения.
69+
4. Реализовать возможность получения кадров из видеофайла и/или камеры.
8770

8871
__Дополнительные задачи:__
89-
1.
72+
73+
1. Реализовать случайное перемешивание картинки как в игре в "пятнашки".
74+
2. Реализовать приложение для игры в пятнашки.
9075

9176
## Общая последовательность действий
9277

93-
1. Сделать форк upstream-репозитория, клонировать origin к себе на локальную
94-
машину. Скомпилировать и запустить сэмпл на картинке.
95-
2. Создать копию директории с сэмплом, добавить ее построение в CMake,
96-
убедиться что новый сэмпл успешно строится и запускается. Прислать
97-
pull-request с еще неизмененным сэмплом.
98-
3. Сделать так, чтобы регион фильтрации менял со временем свое положение и
99-
размеры. Прислать pull request.
100-
4. Добавить вторую кнопку, позволяющую сохранить текущее изображение на
78+
1. Сделать форк upstream-репозитория (раздел
79+
[Общие инструкции по работе с Git](https://github.com/Itseez-NNSU-SummerSchool2015/practice1-devtools#Общие-инструкции-по-работе-с-git)
80+
в практике №1).
81+
2. Клонировать origin к себе на локальную машину (раздел
82+
[Общие инструкции по работе с Git](https://github.com/Itseez-NNSU-SummerSchool2015/practice1-devtools#Общие-инструкции-по-работе-с-git)
83+
в практике №1).
84+
3. Скомпилировать и запустить сэмпл на картинке(раздел
85+
[Сборка проекта с помощью CMake и MS VS](https://github.com/Itseez-NNSU-SummerSchool2015/practice1-devtools#Сборка-проекта-с-помощью-cmake-и-microsoft-visual-studio)
86+
в практике №1).
87+
4. Создать копию директории с сэмплом, добавить ее построение в общий
88+
`CMakeLists.txt`.
89+
5. Убедиться, что новый сэмпл успешно собирается и запускается.
90+
6. Прислать Pull Request с еще неизмененным сэмплом. Пометить в конце
91+
названия `(NOT READY)`. По мере готовности решений основных задач Pull
92+
Request можно будет переименовать.
93+
7. Сделать так, чтобы регион фильтрации менял со временем свое положение и
94+
размеры. Прислать Rull Request.
95+
4. Добавить третью кнопку, позволяющую сохранить текущее изображение на
10196
экране. Сохранять можно в текущую директорию с меткой времени. Прислать
10297
pull request.
103-
5. Добавить несколько дополнительных кнопок, позволяющих менять тип фильтра.
104-
- Простой перевод в grayscale.
105-
- Режим пикселизации (как когда по телевидению скрывают лицо).
106-
- Режим Canny.
107-
- Прислать pull-request.
98+
5. Добавить несколько дополнительных кнопок, позволяющих менять тип фильтра
99+
(см. перечень ниже) и прислать Rull Request.
100+
- Простой перевод в оттенки серого (функция
101+
[cvtColor](http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html#cvtcolor)).
102+
- Режим пикселизации (подробнее описано можно прочитать
103+
[здесь](http://opencv-code.com/tutorials/photo-to-colored-dot-patterns-with-opencv)).
104+
- Режим применения Канни детектора (пример использования функции
105+
[Canny](http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/canny_detector/canny_detector.html)).
108106
6. Реализовать возможность получения кадров с камеры и видеофайлов. Добавить
109-
соответствующие аргументы командной строки. Прислать pull-request.
110-
7. Дополнительные задания
111-
- Реализовать случайное перемешивание картинки как в игре в "пятнашки".
107+
соответствующие аргументы командной строки. Прислать Rull Request.
108+
7. Решить задачи из списка
109+
[Дополнительные задачи](https://github.com/Itseez-NNSU-SummerSchool2015/practice2-opencv-intro#Задачи).
112110

113111
## Детальная инструкция по выполнению работы
114112

0 commit comments

Comments
 (0)