Обработка изображений с помощью OpenCV
Покупка
Издательство:
ДМК Пресс
Авторы:
Буэно Глория Гарсия, Суарес Оскар Дениз, Аранда Хосе Луис Эспиноса, Салидо Терсеро Хесус, Грасиа Исмаэль Серрано, Валлез Энано Ноэлия
Перевод:
Слинкин Алексей Александрович
Год издания: 2016
Кол-во страниц: 210
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-387-1
Артикул: 651158.02.99
Доступ онлайн
В корзину
OpenCV является наиболее широко распространенной библиотекой компьютерного зрения. Она включает сотни готовых функций обработки изображений и используется как в академических учреждениях, так и в промышленности. В этой книге на примерах демонстрируются основные алгоритмы обработки изображений, реализованные в OpenCV. Сначала рассказывается об установке библиотеки, описывается ее общая структура и приводятся простые примеры чтения и записи изображений и видео. Далее рассматривается фильтрация изображений и манипуляции с цветом. Вы узнаете о таких методах обработки, как ретуширование, очистка от шумов и создание HDR-изображений. В последней главе речь пойдет о повышении быстродействия за счет использования графических процессоров. Все рассмотренные темы иллюстрируются примерами. Издание предназначено программистам, знакомым с языком C++ и желающим изучить методы обработки изображений с помощью библиотеки OpenCV.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Глория Буэно Гарсия, Оскар Дениз Суарес, Хосе Луис Эспиноса Аранда, Хесус Салидо Терсеро, Исмаэль Серрано Грасиа, Ноэлия Валлез Энано Обработка изображений с помощью OpenCV
Learning Image Processing with OpenCV Exploit the amazing features of OpenCV to create powerful image processing applications through easy-to-follow examples Gloria Bueno García Oscar Deniz Suarez José Luis Espinosa Aranda Jesus Salido Tercero Ismael Serrano Gracia Noelia Vállez Enano BIRMINGHAM - MUMBAI
Обработка изображений с помощью OpenCV На простых и понятных примерах узнайте, как с помощью поразительных возможностей OpenCV создавать мощные приложения для обработки изображений Глория Буэно Гарсия Оскар Дениз Суарес Хосе Луис Эспиноса Аранда Хесус Салидо Терсеро Исмаэль Серрано Грасиа Ноэлия Валлез Энано Москва, 2016
УДК 004.932OpenCV ББК 32.972.13 Г20 Г20 Глория Буэно Гарсия, Оскар Дениз Суарес, Хосе Луис Эспиноса Аранда, Хесус Салидо Терсеро, Исмаэль Серрано Грасиа, Ноэлия Валлез Энано Обработка изображений с помощью OpenCV/ пер. с англ. Слинкин А. А. – М.: ДМК Пресс, 2016. – 210 с.: ил. ISBN 978-5-97060-387-1 OpenCV является наиболее широко распространенной библиоте кой компьютерного зрения. Она включает сотни готовых функций обработки изображений и используется как в академических учреждениях, так и в промышленности. В этой книге на примерах демонстрируются основные алгоритмы обработки изображений, реализованные в OpenCV. Сначала рассказывается об установке библиотеки, описывается ее общая структура и приводятся простые примеры чтения и записи изображений и видео. Далее рассматривается фильтрация изображений и манипуляции с цветом. Вы узнаете о таких методах обработки, как ретуширование, очистка от шумов и создание HDR-изображений. В последней главе речь пойдет о повышении быстродействия за счет использования графических процессоров. Все рассмотренные темы иллюстрируются примерами. Издание предназначено программистам, знакомым с языком С++ и желающим изучить методы обработки изображений с помощью библиотеки OpenCV. Original English language edition published by Published by Packt Publishing Ltd., Livery Place, 35 Livery Street, Birmingham B3 2PB, UK. Copyright © 2015 Packt Publishing. Russian-language edition copyright © 2015 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроиз ведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, по скольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-78328-765-9 (англ.) Copyright © 2015 Packt Publishing ISBN 978-5-97060-387-1 (рус.) © Оформление, перевод на русский язык, ДМК Пресс, 2016
Оглавление Об авторах ........................................................8 О рецензентах.................................................. 11 предисловие ................................................... 13 Структура книги ............................................................................ 13 Что необходимо для чтения этой книги .......................................... 14 Предполагаемая аудитория .......................................................... 15 Обозначения и графические выделения ........................................ 15 Отзывы .......................................................................................... 16 Поддержка клиентов ..................................................................... 16 Загрузка кода примеров ....................................................................... 16 Загрузка цветных иллюстраций ............................................................ 17 Опечатки ............................................................................................... 17 Нарушение авторских прав ................................................................... 17 Вопросы ........................................................................................ 18 Глава 1. Работа с файлами изображений и видео ... 19 Введение в OpenCV ....................................................................... 19 Загрузка и установка OpenCV ........................................................ 21 Получение компилятора и настройка CMake ................................. 22 Настройка OpenCV с помощью CMake .................................................. 23 Компиляция и установка библиотеки ............................................. 26 Структура каталогов OpenCV ......................................................... 27 Создание проекта, включающего OpenCV ..................................... 28 Общие замечания об использовании библиотеки ................................. 29 Средства для разработки новых проектов ............................................. 30 Создание приложения OpenCV на C++ в Qt Creator ................................ 31 Чтение и запись файлов изображений........................................... 33 Основные элементы API ........................................................................ 33 Поддерживаемые форматы графических файлов ................................. 36 Пример программы .............................................................................. 36
Оглавление Чтение и запись видеофайлов ....................................................... 41 Пример программы .............................................................................. 41 Средства взаимодействия с пользователем ......................................... 43 Полосы прокрутки ................................................................................. 46 Управление с помощью мыши ............................................................... 47 Кнопки .................................................................................................. 48 Рисование и отображение текста .......................................................... 49 Резюме ......................................................................................... 51 Глава 2. Инструменты обработки изображений ...... 52 Основные типы данных .................................................................. 52 Доступ к пикселям ......................................................................... 55 Хронометраж ................................................................................ 56 Типичные операции над изображениями ....................................... 56 Арифметические операции ........................................................... 58 Сохранение данных ....................................................................... 61 Гистограммы ................................................................................. 63 Пример программы .............................................................................. 65 Пример программы .............................................................................. 69 Резюме ......................................................................................... 73 Глава 3. Коррекция и улучшение изображений ...... 74 Фильтрация изображений ............................................................. 74 Сглаживание ......................................................................................... 75 Повышение резкости ............................................................................ 79 Работа с пирамидами изображений ...................................................... 82 Пирамиды Лапласа ............................................................................... 83 Морфологические операции ......................................................... 84 Пример программы .............................................................................. 87 LUT-фильтры ................................................................................. 88 Пример программы .............................................................................. 89 Геометрические преобразования .................................................. 90 Аффинное преобразование .................................................................. 91 Ретуширование ........................................................................... 101 Пример программы ............................................................................ 103 Очистка от шумов ........................................................................ 107 Пример программы ............................................................................ 108 Резюме ....................................................................................... 110 Глава 4. Работа с цветом .................................. 111 Цветовые пространства .............................................................. 111
Оглавление Преобразования цветовых пространств (cvtColor) .............................. 112 Сегментация на основе цветового пространства ......................... 132 HSV-сегментация ................................................................................ 133 YCrCb-сегментация ............................................................................. 134 Цветоперенос ............................................................................. 136 Пример программы ............................................................................ 136 Резюме ....................................................................................... 138 Глава 5. Обработка видео ................................. 139 Стабилизация видео ................................................................... 139 Сверхвысокое разрешение ......................................................... 146 Сшивка изображений .................................................................. 155 Резюме ....................................................................................... 167 Глава 6. Вычислительная фотография ................ 169 Изображения с широким динамическим диапазоном .................. 169 Создание HDR-изображений .............................................................. 172 Тональная компрессия ........................................................................ 176 Совмещение ....................................................................................... 177 Экспозиционное объединение ............................................................ 178 Бесшовное клонирование ........................................................... 179 Обесцвечивание ......................................................................... 181 Нефотореалистичный рендеринг ................................................ 183 Резюме ....................................................................................... 186 Глава 7. Ускорение обработки изображений ........ 187 Установка OpenCV с поддержкой OpenCL .................................... 189 Краткое описание установки OpenCV с поддержкой OpenCL ............... 194 Проверка использования GPU ............................................................. 194 Ускорение собственных функций ................................................ 196 Проверка поддержки OpenCL .............................................................. 196 Ваша первая программа для GPU ....................................................... 198 А теперь в реальном времени ............................................................. 200 Резюме ....................................................................................... 205 предметный указатель .................................... 206
Об автОрах Глория Буэно Гарсия имеет степень доктора по машинному зрению, присвоенную университетом Ковентри, Великобритания. Она работала в должности старшего научного сотрудника в нескольких исследовательских центрах, в частности в подразделении UMR 7005 Национального научно-исследовательского центра при университете Луи Пастера в Страсбурге (Франция), в компании Gilbert Gilkes & Gordon Technology (Великобритания) и в центре научно-технических исследований CEIT San Sebastian (Испания). Она автор двух патентов, одного зарегистрированного типа программ и более 100 рецензированных публикаций. Ее научные интересы лежат в области двумерной и трехмерной мультимодальной обработки изображений и искусственного интеллекта. Возглавляет исследовательскую группу VISILAB в университете Кастилия–Ла-Манча. Является соавтором книги по программированию для мобильных устройств с применением OpenCV «OpenCV Essentials», вышедшей в издательстве Packt Publishing. Посвящается нашим сыновьям в качестве компенсации за то время, когда мы не могли поиграть с ними, и нашим родителям за постоянную поддержку безо всяких условий. Спасибо от Глории и Оскара. Научные интересы Оскара Дениза Суареса сосредоточены в основном в области машинного зрения и распознавания образов. Он автор более 50 работ в рецензируемых журналах и на конференциях. Занял второе место на конкурсе работ докторов наук по машинному зрению и распознаванию образов, проводимом AERFAI (Испанская ассоциация по распознаванию образов и анализу изображений), а также получил награду от компании Innocentive Inc. за лучшую программу по обработке и переформатированию файлов изображений. Его работы используются такими передовыми компаниями, как Existor, Gliif, Tapmedia, E-Twenty и другими. Он внес вклад в разра
Об авторах ботку OpenCV. В настоящее время работает доцентом в университете Кастилия–Ла-Манча и сотрудничает с VISILAB. Является старшим членом IEEE и участвует в организациях AAAI, SIANI, CEA-IFAC, AEPIA и AERFAI-IAPR. Исполняет функции академического редактора журнала PLoS ONE. По приглашению занимался исследовательской работой в университете Карнеги-Меллон, Имперском колледже Лондона и в компании Leica Biosystems. Соавтор двух книг по OpenCV. Хосе Луис Эспиноса Аранда имеет степень доктора информатики, присвоенную университетом Кастилия–Ла-Манча. Он вышел в финал испанского конкурса Certamen Universitario Arquímedes de Introducción a la Investigación científica 2009 года со своим дипломным проектом. В сферу его научных интересов входят машинное зрение, эвристические алгоритмы и исследование операций. В настоящее время работает в группе VISILAB младшим научным сотрудником, занимаясь разработками в области машинного зрения. Посвящаю своим родителям и братьям. Хесус Салидо Терсеро получил степень доктора электротехники в 1996 году в Мадридском политехническом университете (Испания). Затем два года работал приглашенным научным сотрудником в Институте робототехники (университет Карнеги-Меллон, Питтсбург, США), занимаясь кооперативными системами из нескольких роботов. После возвращения в испанский университет Кастилия–ЛаМанча ведет курсы по робототехнике и промышленной информатике, а также занимается исследованиями в области интеллектуальных систем машинного зрения. Последние три года направлял основные усилия на разработку приложений машинного зрения для мобильных устройств. Соавтор книги по программированию мобильных устройств с применением OpenCV. Посвящаю тем, кому обязан всем в своей жизни: родителям, Саграрио и Марии. Исмаэль Серрано Грасиа получил ученую степень по информатике в 2012 году в университете Кастилия–Ла-Манча. Удостоен выс
Об авторах шей оценки за дипломный проект, посвященный распознаванию людей. В этом приложении используются камеры глубины, программируемые с помощью библиотеки OpenCV. В настоящее время трудится над докторской диссертацией, получив грант от испанского Министерства науки и исследований. По совместительству работает младшим научным сотрудником в группе VISILAB, занимаясь различными вопросами машинного зрения. Посвящаю родителям, которые дали мне возможность получить образование и поддерживают на протяжении всей жизни. А также своему научному руководителю, доктору Оскару Денизу, моему другу, наставнику и помощнику. И еще друзьям и своей девушке, которая всегда помогала мне и верила, что я смогу это сделать. Ноэлия Валлез Энано с детства обожала компьютеры, но свою первую машину получила только в пятнадцать лет. В 2009 году она с высшими баллами окончила курс информатики в университете Кастилия–Ла-Манча. Начав работать в группе VISILAB, занималась проектом в области CAD-систем для маммографии и обработкой медицинских электронных данных. Затем получила степень магистра физико-математических наук и приступила к работе над докторской диссертацией, посвященной методам обработки изображений и распознавания образов. Также любит преподавать и заниматься различными вопросами искусственного интеллекта.
О рецензентах Вальтер Лучетти, известный в Интернете под ником Myzhar, – инженер-компьютерщик из Италии, специализируется в робототехнике и робототехническом восприятии. Получил степень лауреата в 2005 года за написанную в Пизанском исследовательском центре «E.Piaggio» диссертацию по 3D-маппингу с помощью двумерного лазера, управляемого серводвигателем, когда на трехмерную поверхность проецируются RGB-данные. В ходе работы над диссертацией он впервые познакомился с OpenCV – это было в начале 2004 года, когда библиотека еще находилась в зачаточном состоянии. После защиты занимался разработкой низкоуровневых встраиваемых систем и высокоуровневых систем для настольных компьютеров. Знания в области машинного зрения и машинного обучения он серьезно обогатил, работая инженером-исследователем в центре передовой робототехники Густаво Стефанини в Ла Специи (Италия), филиале лаборатории PERCRO Пизанской высшей школы Sant’Anna. В настоящее время работает в программной индустрии, пишет прошивки для встраиваемых ARM-систем, программы для настольных компьютеров на базе библиотеки Qt и разрабатывает интеллектуальные алгоритмы для систем видеонаблюдения на основе OpenCV и CUDA. Также работает над личным робототехническим проектом: MyzharBot. Это гусеничный наземный подвижный робот, который пользуется машинным зрением для распознавания препятствий, анализа и исследования окружающей среды. Управление роботом осуществляется с помощью алгоритмов, основанных на ROS, CUDA и OpenCV. Познакомиться с проектом можно на сайте http:// myzharbot.robot-home.it. Андре де Суза Морейра получил степень магистра информатики со специализацией в компьютерной графике от папского католического университета Рио де Жанейро (Бразилия). Закончил федеральный университет штата Мараньян (Бразилия) со степенью бакалавра информатики. Во время работы над дипломом входил в состав исследовательской группы Labmint и занимался об
О рецензентах работкой медицинских изображений, а конкретно распознаванием и диагностикой рака молочной железы. В настоящее время работает исследователем и системным аналитиком в институте Текграф (Instituto Tecgraf), одном из главных научно-исследовательских центров компьютерной графики в Бразилии. С 2007 года активно использует PHP, HTML и CSS, а сейчас применяет для разработки C++11/C++14, SQLite, Qt, Boost, и OpenGL. Дополнительные сведения можно найти на его персональном сайте по адресу www.andredsm.com. Марвин Смит в настоящее время работает инженером-программистом в оборонной промышленности и специализируется в области фотограмметрии и дистанционного зондирования. Степень бакалавра информатики получил в университете Невады в Рино. В область его технических интересов входят высокопроизводительные вычисления, распределенная обработка изображений и многоспектральные формирователи изображений. До перехода в оборонную отрасль Марвин проходил практику в группе интеллектуальной робототехники в исследовательском центре НАСА в Амесе и в центре ходовых испытаний в Неваде.
предислОвие OpenCV является, наверное, самой широко распространенной библиотекой компьютерного зрения. Она включает сотни готовых функций обработки изображений и используется как в академических учреждениях, так и в промышленности. Камеры становятся все дешевле, а спрос на обработку изображений растет, поэтому спектр приложений OpenCV как на настольных, так и на мобильных платформах постоянно расширяется. В этой книге на примерах демонстрируются основные алгоритмы обработки изображений, реализованные в OpenCV. Есть книги, где объясняется теория, лежащая в основе OpenCV. Есть и такие, где приводятся примеры больших, почти законченных приложений. Мы же ориентируемся на читателей, которым нужны – и притом быстро – простые для понимания работающие примеры, на которые можно навешивать дополнительные функции. В первой, вступительной, части объясняется, как установить библиотеку, описывается ее общая структура и приводятся простые примеры чтения и записи изображений и видео. Далее рассматриваются следующие темы: работа с изображениями и видео, основные инструменты обработки изображений, коррекция и улучшение изображений, цвет, обработка видео, вычислительная фотография. И напоследок обсуждаются более сложные темы, в частности, повышение быстродействия за счет использования графических процессоров. На протяжении всей книги описываются новые функции и методы, появившиеся в последней основной версии, OpenCV 3. Структура книги В главе 1 «Работа с файлами изображений и видео» описывается, как читать такие файлы. Демонстрируются также основные средства взаимодействия с пользователем, которые позволяют изменять значения параметров, выбирать интересующие области и т. д.
Доступ онлайн
В корзину