Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Обработка изображений с помощью OpenCV

Покупка
Артикул: 651158.02.99
Доступ онлайн
599 ₽
В корзину
OpenCV является наиболее широко распространенной библиотекой компьютерного зрения. Она включает сотни готовых функций обработки изображений и используется как в академических учреждениях, так и в промышленности. В этой книге на примерах демонстрируются основные алгоритмы обработки изображений, реализованные в OpenCV. Сначала рассказывается об установке библиотеки, описывается ее общая структура и приводятся простые примеры чтения и записи изображений и видео. Далее рассматривается фильтрация изображений и манипуляции с цветом. Вы узнаете о таких методах обработки, как ретуширование, очистка от шумов и создание HDR-изображений. В последней главе речь пойдет о повышении быстродействия за счет использования графических процессоров. Все рассмотренные темы иллюстрируются примерами. Издание предназначено программистам, знакомым с языком C++ и желающим изучить методы обработки изображений с помощью библиотеки OpenCV.
Обработка изображений с помощью OpenCV / Глория Буэно Гарсия [и др.] ; пер. с англ. А.А. Слинкина. - Москва : ДМК Пресс, 2016. - 210 с. - ISBN 978-5-970()0-387-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/1028080 (дата обращения: 24.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Глория Буэно Гарсия, Оскар Дениз Суарес, 

Хосе Луис Эспиноса Аранда, Хесус Салидо Терсеро, 

Исмаэль Серрано Грасиа, Ноэлия Валлез Энано

Обработка 

изображений 

с помощью 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 «Работа с файлами изображений и видео» описывается, как 
читать такие файлы. Демонстрируются также основные средства взаимодействия с пользователем, которые позволяют изменять значения параметров, выбирать интересующие области и т. д.

Доступ онлайн
599 ₽
В корзину