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

Изучаем OpenCV 3. Разработка программ компьютерного зрения на C++ с применением библиотеки OpenCV

Покупка
Новинка
Артикул: 714054.02.99
Доступ онлайн
1 399 ₽
В корзину
В книге приведено описание всей библиотеки OpenCV в ее современном воплощении на языке C++, включая средства машинного обучения в контексте компьютерного зрения. OpenCV, насчитывающая свыше 500 функций, используется в самых разных коммерческих приложениях: охрана, обработка медицинских изображений, распознавание образов и лиц, робототехника, контроль качества продукции и др. Упражнения в конце каждой главы помогут проконтролировать усвоение знаний. Издание предназначено разработчикам, научным сотрудникам, инженерам-робототехникам и энтузиастам-любителям.
103
106
106
106
112
115
116
120
120
121
121
121
123
123
124
124
125
125
127
128
129
129
134
137
138
138
139
139
140
141
143
143
144
144
145
146
147
221
289
300
318
Кэлер, А. Изучаем OpenCV 3. Разработка программ компьютерного зрения на C++ с применением библиотеки OpenCV : практическое руководство / А. Кэлер, Г. Брэдски ; пер. с анг. А. А. Слинкина. – Москва : ДМК Пресс, 2017. - 827 с. – ISBN 978-5-97060-471-7. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2260256 (дата обращения: 12.10.2026). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Адриан Кэлер, Гэри Брэдски
Изучаем OpenCV 3


Adrian Kaehler & Gary Bradski
Learning OpenCV 3
Computer Vision in C++ with the OpenCV Library
Beijing • Boston • Farnham • Sebastopol • Tokyo
  


Адриан Кэлер, Гэри Брэдски
Изучаем OpenCV 3
Разработка программ компьютерного зрения  
на C++ с применением библиотеки OpenCV
Москва, 2017


УДК 004.932OpenCV
ББК 32.972.13
К98
Кэлер А., Брэдски Г.
К98	
Изучаем OpenCV 3 / пер. с анг. А. А. Слинкина. – М.: ДМК Пресс, 2017. – 826 с.: 
ил. 
ISBN 978-5-97060-471-7
В книге приведено описание всей библиотеки OpenCV в ее современном воплощении 
на языке C++, включая средства машинного обучения в контексте компьютерного зрения.
OpenCV, насчитывающая свыше 500 функций, используется в самых разных коммерческих приложениях: охрана, обработка медицинских изображений, распознавание образов 
и лиц, робототехника, контроль качества продукции и др. Упражнения в конце каждой главы 
помогут проконтролировать усвоение знаний.
Издание предназначено разработчикам, научным сотрудникам, инженерам-робототехникам и энтузиастам-любителям.
УДК  004.932OpenCV
ББК  32.972.13
Authorized Russian translation of the English edition of Learning OpenCV 3, ISBN 9781491937990 
© 2016 Adrian Kaehler, Gary Bradski
This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls 
all rights to publish and sell the same.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы 
то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев 
авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность 
технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности 
за возможные ошибки, связанные с использованием книги.
ISBN 978-1-491-93799-0 (анг.)	
© 2017 Adrian Kaehler, Gary Bradski
ISBN 978-5-97060-471-7 (рус.)	
©  Оформление, издание, ДМК Пресс, 2017


Содержание
Предисловие.................................................................................................................................16
Глава 1. Общие сведения...................................................................................................25
Что такое OpenCV?...........................................................................................................................25
Кто использует OpenCV?................................................................................................................26
Что такое компьютерное зрение?............................................................................................26
Истоки OpenCV..................................................................................................................................30
Архитектура OpenCV...................................................................................................................32
Ускорение OpenCV с помощью IPP.......................................................................................32
Кто является владельцем OpenCV?........................................................................................33
Скачивание и установка OpenCV.................................................................................................33
Установка..........................................................................................................................................33
Получение самой последней версии OpenCV из Git.............................................................36
Дополнительная документация по OpenCV.............................................................................36
Документация в комплекте поставки.....................................................................................36
Онлайновая документация и вики..........................................................................................36
Репозиторий предоставленного кода OpenCV........................................................................39
Скачивание и сборка предоставленных модулей...............................................................40
Переносимость....................................................................................................................................40
Резюме....................................................................................................................................................41
Упражнения..........................................................................................................................................41
Глава 2. Введение в OpenCV.............................................................................................42
Включаемые файлы...........................................................................................................................42
Ресурсы.............................................................................................................................................43
Первая программа – вывод изображения на экран................................................................43
Вторая программа – видео..............................................................................................................46
Перемотка вперед и назад................................................................................................................47
Простое преобразование..................................................................................................................51
Не столь простое преобразование................................................................................................52
Ввод с камеры......................................................................................................................................54
Запись в AVI-файл.............................................................................................................................55
Резюме....................................................................................................................................................56
Упражнения..........................................................................................................................................57
Глава 3. Знакомство с типами данных OpenCV................................................58
Типы данных OpenCV......................................................................................................................58
Обзор простых типов...................................................................................................................59
Простые типы: а теперь детали.................................................................................................60
Вспомогательные типы................................................................................................................66
Служебные функции....................................................................................................................73


6    Содержание
Шаблонные структуры................................................................................................................79
Резюме....................................................................................................................................................80
Упражнения..........................................................................................................................................80
Глава 4. Типы изображений и больших массивов.........................................81
Динамические массивы переменного размера.........................................................................81
Класс cv::Mat: плотные N-мерные массивы.........................................................................81
Создание массива..........................................................................................................................82
Доступ к отдельным элементам массива...............................................................................86
N-арный итератор массива: NAryMatIterator......................................................................89
Доступ к блоку элементов массива.........................................................................................91
Матричные выражения: cv::Mat и алгебра...........................................................................92
Приведение с насыщением.........................................................................................................93
На что еще способны массивы .................................................................................................94
Класс разреженных массивов cv::SparseMat........................................................................95
Доступ к элементам разреженного массива.........................................................................96
Функции, уникальные для разреженных массивов..........................................................98
Шаблонные структуры для типов больших массивов.....................................................99
Резюме.................................................................................................................................................101
Упражнения.......................................................................................................................................101
Глава 5. Операции с массивами................................................................................103
Что еще можно делать с массивами..........................................................................................103
cv::abs()...........................................................................................................................................106
cv::absdiff()....................................................................................................................................106
cv::add()..........................................................................................................................................106
cv::addWeighted()........................................................................................................................107
cv::bitwise_and()..........................................................................................................................108
cv::bitwise_not()..........................................................................................................................109
cv::bitwise_or().............................................................................................................................109
cv::bitwise_xor()...........................................................................................................................109
cv::calcCovarMatrix()................................................................................................................. 110
cv::cartToPolar()............................................................................................................................111
cv::checkRange().......................................................................................................................... 112
cv::compare()................................................................................................................................. 112
cv::completeSymm().................................................................................................................... 113
cv::convertScaleAbs()................................................................................................................. 113
cv::countNonZero()..................................................................................................................... 114
cv::cvarrToMat().......................................................................................................................... 114
cv::dct()........................................................................................................................................... 115
cv::dft()............................................................................................................................................ 116
cv::cvtColor()................................................................................................................................ 117
cv::determinant().......................................................................................................................... 119
cv::divide().....................................................................................................................................120
cv::eigen().......................................................................................................................................120


Содержание    7
cv::exp()..........................................................................................................................................121
cv::extractImageCOI()...............................................................................................................121
cv::flip()...........................................................................................................................................121
cv::gemm()......................................................................................................................................121
cv::getConvertElem() и cv::getConvertScaleElem()..........................................................122
cv::idct()..........................................................................................................................................123
cv::idft()..........................................................................................................................................123
cv::inRange().................................................................................................................................124
cv::insertImageCOI()..................................................................................................................124
cv::invert()......................................................................................................................................124
cv::log()...........................................................................................................................................125
cv::LUT()........................................................................................................................................125
cv::magnitude().............................................................................................................................126
cv::Mahalanobis().........................................................................................................................126
cv::max().........................................................................................................................................127
cv::mean().......................................................................................................................................128
cv::meanStdDev()........................................................................................................................128
cv::merge()......................................................................................................................................129
cv::min()..........................................................................................................................................129
cv::minMaxIdx()...........................................................................................................................130
cv::minMaxLoc()..........................................................................................................................131
cv::mixChannels()........................................................................................................................131
cv::mulSpectrums()......................................................................................................................133
cv::multiply().................................................................................................................................133
cv::mulTransposed()....................................................................................................................133
cv::norm().......................................................................................................................................134
cv::normalize()...............................................................................................................................135
cv::perspectiveTransform()........................................................................................................136
cv::phase()......................................................................................................................................137
cv::polarToCart()..........................................................................................................................137
cv::pow().........................................................................................................................................138
cv::randu()......................................................................................................................................138
cv::randn()......................................................................................................................................139
cv::randShuffle()...........................................................................................................................139
cv::reduce()....................................................................................................................................139
cv::repeat().....................................................................................................................................140
cv::scaleAdd()................................................................................................................................141
cv::setIdentity()............................................................................................................................141
cv::solve().......................................................................................................................................141
cv::solveCubic()............................................................................................................................142
cv::solvePoly()...............................................................................................................................143
cv::sort()..........................................................................................................................................143
cv::sortIdx()...................................................................................................................................143
cv::split().........................................................................................................................................144
cv::sqrt()..........................................................................................................................................144


8    Содержание
cv::subtract().................................................................................................................................145
cv::sum().........................................................................................................................................145
cv::trace()........................................................................................................................................146
cv::transform()...............................................................................................................................146
cv::transpose()...............................................................................................................................146
Резюме.................................................................................................................................................147
Упражнения.......................................................................................................................................147
Глава 6. Рисование и аннотирование....................................................................149
Рисование...........................................................................................................................................149
Линии и залитые многоугольники.......................................................................................149
Шрифты и текст..........................................................................................................................156
Резюме.................................................................................................................................................157
Упражнения.......................................................................................................................................158
Глава 7. Функторы в OpenCV.........................................................................................159
Объекты-работяги...........................................................................................................................159
Метод главных компонент (cv::PCA)..................................................................................159
Сингулярное разложение (cv::SVD)....................................................................................162
Генератор случайных чисел (cv::RNG)................................................................................164
Резюме.................................................................................................................................................167
Упражнения.......................................................................................................................................167
Глава 8. Изображения, видео и файлы данных............................................169
HighGUI: переносимый комплект графических инструментов.....................................169
Работа с файлами изображений.................................................................................................170
Загрузка и сохранение изображений...................................................................................171
Замечание о кодеках.......................................................................................................................172
Сжатие и распаковка......................................................................................................................173
Работа с видео...................................................................................................................................174
Чтение видео с помощью объекта cv::VideoCapture.......................................................174
Запись видео с помощью объекта cv::VideoWriter..........................................................179
Сохранение данных........................................................................................................................180
Запись в cv::FileStorage............................................................................................................180
Чтение из cv::FileStorage..........................................................................................................182
Класс cv::FileNode.......................................................................................................................183
Резюме.................................................................................................................................................185
Упражнения.......................................................................................................................................185
Глава 9. Платформенные и кросс-платформенные окна.....................188
Работа с окнами................................................................................................................................188
Платформенный графический интерфейс пользователя в HighGUI......................189
Работа с библиотекой Qt.........................................................................................................199
Интеграция OpenCV с полнофункциональными библиотеками  
для построения GUI..................................................................................................................208


Содержание    9
Резюме.................................................................................................................................................220
Упражнения.......................................................................................................................................220
Глава 10. Фильтры и свертка........................................................................................221
Вступление.........................................................................................................................................221
Прежде чем начать..........................................................................................................................221
Фильтры, ядра и свертка..........................................................................................................221
Экстраполяция рамки и граничные условия....................................................................222
Пороговые операции......................................................................................................................225
Метод Оцу.....................................................................................................................................228
Адаптивный порог......................................................................................................................228
Сглаживание.....................................................................................................................................231
Простое размытие и прямоугольный фильтр...................................................................231
Медианный фильтр....................................................................................................................233
Фильтр Гаусса..............................................................................................................................234
Двусторонний фильтр...............................................................................................................235
Производные и градиенты............................................................................................................237
Оператор Собеля........................................................................................................................237
Фильтр Шарра.............................................................................................................................239
Лапласиан......................................................................................................................................240
Морфологические преобразования...........................................................................................241
Наращивание и эрозия.............................................................................................................242
Общая морфологическая функция......................................................................................246
Размыкание и замыкание.........................................................................................................246
Морфологический градиент...................................................................................................249
Верх шляпы и черная шляпа..................................................................................................251
Создание собственного ядра...................................................................................................253
Свертка с произвольным линейным фильтром....................................................................254
Применение общего фильтра с помощью cv::filter2D()................................................255
Применение общего сепарабельного фильтра с помощью cv::sepFilter2D.............255
Построители ядер.......................................................................................................................256
Резюме.................................................................................................................................................257
Упражнения.......................................................................................................................................257
Глава 11. Преобразования изображений общего вида.........................261
Вступление.........................................................................................................................................261
Растяжение, сжатие, деформирование и вращение.............................................................261
Равномерное изменение размера..........................................................................................261
Пирамиды изображений..........................................................................................................263
Неравномерные отображения................................................................................................266
Аффинное преобразование.....................................................................................................268
Перспективное преобразование............................................................................................271
Преобразования общего вида......................................................................................................275
Полярное преобразование.......................................................................................................275
Лог-полярное преобразование...............................................................................................276


10    Содержание
Произвольные отображения...................................................................................................279
Исправление изображений..........................................................................................................280
Ретуширование............................................................................................................................280
Очистка от шума.........................................................................................................................281
Выравнивание гистограммы........................................................................................................284
Резюме.................................................................................................................................................287
Упражнения.......................................................................................................................................287
Глава 12. Анализ изображений...................................................................................289
Вступление.........................................................................................................................................289
Дискретное преобразование Фурье..........................................................................................289
cv::dft(): дискретное преобразование Фурье.....................................................................290
cv::idft(): обратное дискретное преобразование Фурье................................................292
cv::mulSpectrums(): умножение спектров...........................................................................292
Свертка с помощью дискретного преобразования Фурье...........................................293
cv::dct(): дискретное косинусное преобразование..........................................................294
cv::idct(): обратное дискретное косинусное преобразование......................................295
Интегральные изображения........................................................................................................296
cv::integral(): интегральное изображение в виде суммы...............................................298
cv::integral(): интегральное изображение в виде суммы квадратов..........................298
cv::integral(): интегральное изображение в виде суммы с наклоном........................298
Детектор границ Кэнни.................................................................................................................299
cv::Canny()....................................................................................................................................300
Преобразования Хафа....................................................................................................................301
Преобразование Хафа для поиска прямых........................................................................301
Преобразование Хафа для поиска окружностей.............................................................304
Дистанционное преобразование................................................................................................308
cv::distanceTransform(): непомеченное дистанционное преобразование................309
cv::distanceTransform(): помеченное дистанционное преобразование.....................309
Сегментация......................................................................................................................................310
Заливка...........................................................................................................................................310
Алгоритм водораздела..............................................................................................................313
Алгоритм GrabCut......................................................................................................................314
Сегментация методом сдвига среднего...............................................................................316
Резюме.................................................................................................................................................318
Упражнения.......................................................................................................................................318
Глава 13. Гистограммы и шаблоны.........................................................................320
Представление гистограмм в OpenCV.....................................................................................322
cv::calcHist(): создание гистограммы по данным............................................................323
Базовые операции с гистограммами.........................................................................................325
Нормализация гистограммы..................................................................................................325
Пороговое отсечение гистограммы......................................................................................326
Нахождение интервала с наибольшим числом значений.............................................326
Сравнение двух гистограмм....................................................................................................328


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