|
4 | 4 |
|
5 | 5 |
|
6 | 6 | Проект представляет собой инфраструктуру для освоения основ работы с библиотекой OpenCV:
|
7 |
| - - Загрузка/сохранение изображений (базовые примитивы и операции модуля opencv_core) |
8 |
| - - Разработка простейшего интерфейса средствами библиотеки (базовые операции модуля opencv_highgui) |
| 7 | + - Загрузка/сохранение изображений (базовые примитивы и операции модуля ```opencv_core```). |
| 8 | + - Обработка изображений с помощью простеших фильтров библиотеки (операции модуля ```opencv_imgproc```). |
| 9 | + - Разработка простейшего интерфейса средствами библиотеки (базовые операции модуля ```opencv_highgui```). |
9 | 10 |
|
10 | 11 | ## Общая структура проекта
|
11 | 12 |
|
12 | 13 | Структура проекта:
|
13 |
| - - ```3rdparty``` - библиотека gtest |
14 |
| - - ```include``` - директория для размещения заголовочных файлов |
15 |
| - - ```samples``` - директория для размещения примеров использования |
16 |
| - - ```src``` - директория с исходными кодами |
17 |
| - - ```test``` - директория с тестами |
18 |
| - - ```.gitignore``` - перечень расширений файлов, которые не выкладываются в проект |
19 |
| - - ```.travis.yml``` - конфигурационный файл для системы автоматического тестирования Travis-CI |
20 |
| - - ```CMakeLists.txt``` - общий файл для сборки проекта с помощью CMake |
21 |
| - - ```README.md``` - информация о проекте, которую вы сейчас читаете |
22 |
| - |
23 |
| -В проекте имеются следующие модули: |
| 14 | + - ```3rdparty``` - библиотека gtest. |
| 15 | + - ```include``` - директория для размещения заголовочных файлов. |
| 16 | + - ```samples``` - директория для размещения примеров использования. |
| 17 | + - ```src``` - директория с исходными кодами. |
| 18 | + - ```test``` - директория с тестами. |
| 19 | + - ```.gitignore``` - перечень расширений файлов, которые не выкладываются в проект. |
| 20 | + - ```.travis.yml``` - конфигурационный файл для системы автоматического тестирования Travis-CI. |
| 21 | + - ```CMakeLists.txt``` - общий файл для сборки проекта с помощью CMake. |
| 22 | + - ```README.md``` - информация о проекте, которую вы сейчас читаете. |
| 23 | + |
| 24 | +В шаблонном проекте имеются следующие модули: |
24 | 25 | - Модуль вспомогательных функций (```./include/auxiliaries.hpp```, ```./src/auxiliaries.hpp```), в частности, функция обработки аргументов командной строки.
|
25 | 26 | - Модуль, содержащий объявление и реализацию функций загрузки, обработки и отображения изображений (```./include/img_proc.hpp```, ```./src/img_proc.hpp```).
|
26 |
| - - Примеры тестов (```aux_test.cpp```) |
| 27 | + - Примеры тестов (```aux_test.cpp```). |
27 | 28 | - Пример приложения, полностью решающего задачу (```sample_template.cpp```).
|
28 | 29 |
|
29 | 30 | ## Цели и задачи
|
30 | 31 |
|
| 32 | +**_Цель данной работы_** - изучить базовые примитивы модуля ```opencv_core``` и простейшие операции обработки изображений модуля ```opencv_imgproc```, научиться разрабатывать интерфейс средствами модуля ```opencv_highgui``` на примере задачи определения ребер на изображении. |
| 33 | + |
| 34 | +Для этого необходимо решить следующие **_задачи_**: |
| 35 | + 1. Изучить базовые методы класса ```Mat``` (модуль ```opencv_core```), который применяется для представления изображений. |
| 36 | + 2. Рассмотреть основные операции работы с изображениями: |
| 37 | + 1. Создание изображения (с помощью конструкторов или метода ```create``` класса ```Mat```). |
| 38 | + 2. Загрузка изображения (функция ```imread```). |
| 39 | + 3. Сохранение изображения (функция ```imwrite```). |
| 40 | + 4. Отображение изображения (функции ```imshow```, ```waitKey```). |
| 41 | + 5. Копирование изображения (метод ```copyTo``` класса ```Mat```). |
| 42 | + 6. Методы фильтрации (размытие, сглаживание и др.). |
| 43 | + 3. Изучить и реализовать с использованием OpenCV различные способы выделения контуров на изображении: |
| 44 | + 1. Бинаризация изображения (функция ```threshold```) + поиск контуров (функция ```findContours```). Примечание: для отображения контуров следует использовать функцию ```drawContours```. |
| 45 | + 2. Морфологический градиент (функция ```morphologyEx```). |
| 46 | + 3. Оператор Собеля (функция ```Sobel```). |
| 47 | + 4. Оператор Лапласа (функция ```Laplacian```). |
| 48 | + 5. Детектор ребер Канни (функция ```Canny```). |
| 49 | + 4. Разработать графический интерфейс, удовлетворяющий следующим требованиям: |
| 50 | + 1. Отображение исходного изображения. |
| 51 | + 2. Отображение изображения, на котором отображены контуры. |
| 52 | + 3. Наличие набора переключателей (кнопок) для применения различных методов выделения контуров. |
| 53 | + |
| 54 | +## Инструкция по выполнению работы |
0 commit comments