Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №1. Знакомство с OpenCV

.docx
Скачиваний:
33
Добавлен:
14.03.2016
Размер:
96.36 Кб
Скачать

Знакомство с OpenCV. UI, основные элементы в работы с матрицами, загрузка и сохранение форматы изображений, конвертирование, масштабирование.

Настройка Visual Studio для работы с OpenCV 3.0

Настройка Visual Studio.

  1. Распаковать OpenCV 3.0. Далее будем считать, что OpenCV установлен в папке c:\opencv\

  2. Необходимо создать проект типа «Приложение Win32» (Win32 Console Application). При создании проекта рекомендуется выбрать вариант «пустой проект» (Empty project). (Если этого не делать, в программе необходимо будет использовать _tmain вместо main(), а так же подключать файл stdafx.h во все файлы исходного кода).

  1. В свойствах проекта в разделе “Каталоги VC++” (“VC++ Directories”) настроить пути для папок с заголовочными файлами и файлами библиотек OpenCV: в “Пути включений” (“Include Directory”) добавить c:\opencv\build\include\

в “Пути библиотек” (“Library Directory”) добавить c:\opencv\build\x86\vc10\lib\

  1. В свойствах проекта, в ветке компоновщика (Linker) в разделе input добавить библиотеку opencv_world300d.lib

  2. В свойствах проекта в разделе “Отладка” (“Debugging”) добавить в свойство «среда» («environment»):

PATH=%PATH%;c:\opencv\build\x86\vc10\bin

Эта настройка не является обязательной, если путь прописан в свойствах пользователя операционной системы либо если файлы динамических библиотек OpenCV скопированы в рабочий каталог программы.

  1. Все настройки должны быть выполнены для конфигураций Debug / Release, кроме имени подключаемой библиотеки:

Для Debug конфигурации используется opencv_world300d.lib

Для Release используется opencv_world300.lib

Простая программа для проверки настроек

Если все настроено верно, следующая программа должна запуститься (не забываем исправить путь к картинке). Данная программа открывает изображение, уменьшает его в 2 раза, сохраняет в новый файл и отображает на экране оба изображения.

  1. #include <opencv2\opencv.hpp>  

  2. using namespace cv;  

  3.   

  4. void main()   

  5. {  

  6.     Mat image = imread("C:\\OpenCV\\Lab\\Images\\Flower.jpg");  

  7.       

  8.     Mat resizedImage;  

  9.     resize(image,resizedImage,Size(300,200));  

  10.     imwrite("C:\\OpenCV\\Lab\\Images\\Flower_Resized.jpg",resizedImage);  

  11.     imshow( "Original Image", image );  

  12.     imshow( "Resized Image", resizedImage );  

  13.     waitKey(0);  

  14. }  

Общие замечания по выполнению лабораторных с использованием OpenCV.

  1. Компоненты библиотеки OpenCV могут быть подключены независимо с помощью отдельных директив include:

  2. #include "opencv2/core.hpp"  

  3. #include "opencv2/imgproc.hpp"  

  4. #include "opencv2/photo.hpp"  

  5. #include "opencv2/video.hpp"  

  6. #include "opencv2/features2d.hpp"  

  7. #include "opencv2/objdetect.hpp"  

  8. #include "opencv2/calib3d.hpp"  

  9. #include "opencv2/imgcodecs.hpp"  

  10. #include "opencv2/videoio.hpp"  

  11. #include "opencv2/highgui.hpp"  

  12. #include "opencv2/ml.hpp"  

Это позволит не подключать ненужные компоненты. Для простоты кода используется подключение файла opencv.hpp, который содержит ссылки на все перечисленные выше файлы.

  1. Все функции и типы данных OpenCV находятся в пространстве имен “cv”. Во всех примерах кода пространство имен подключено с использованием директивы using.

Основные типы данных и операции с ними

Работа с регионами интереса

Элементы пользовательского интерфейса

Индивидуальные задания

  1. Преобразовать изображение к монохромному виду (самостоятельно найти формулу вычисления яркостной составляющей по цветовым компонентам);

  2. Выполнить цветокоррекцию изображения (корректировку уровней красного, синего и зеленого компонентов цвета);

  3. Выполнить корректировку яркости и контрастности изображения;

  4. Открыть группу изображений (прочитать список из файла) и составить из них атлас (используя регионы интереса);

  5. Открыть изображение и перемешать полосы (строки или столбцы) пикселей (ширина полосы должна задаваться).

  6. Написать алгоритм рисования прямой линии (окружности, эллипса, график функции).

  7. Реализовать пазл: Открытое изображение разбивается на фрагменты равного размера и случайным образом перемешиваются. Фрагменты могут перемещаться по полю с помощью мыши аналогично «пятнашкам». Расположенные не на своем месте фрагменты должны отображаться монохромными.