Штрих тридцатый. 2019 год.
Амин Ахмади Тацеканди. Машинное зрение с OpenCV 3 и Qt5. Построение визуально привлекательных, многопоточных, межплатформенных приложений машинного зрения.
(Amin Ahmadi Tazehkandi. Computer Vision with OpenCV 3 and Qt5. Build visually appealing, multithreaded, cross-platform computer vision applications. ISBN 978-1-78847-239-5, Copyright © 2018 Packt Publishing)
p.s.
Выдержка из книги:
Предисловие
Никогда не было лучшего времени занятий разработкой программного обеспечения, чем сейчас. Просто осмотрите все вокруг и, по всей вероятности, увидите по крайней мере несколько различных устройств, таких как компьютеры, смартфоны, умные часы или планшеты, выполняющие некие приложения, которые помогают с выполнением различных ежедневных задач или развлекают музыкой, фильмами, видео-играми и т.д. Каждый год сотни новых устройств выведены на рынок, и им требуются новые версии операционных систем, чтобы не отставать от них в части предоставления лучших интерфейсов, разработчикам приложений, чтобы создавать программное обеспечение, которое лучше использует ниже-лежащие базовые ресурсы, такие как дисплеи с высокой разрешающей способностью, различные датчики и т.д. Как следствие фреймворки разработки программного обеспечения должны адаптироваться к новым условиям и поддерживать все это растущее число аппаратных платформ. Учитывая это, фреймворк Qt - вероятно, один из самых успешных межплатформенных фреймворков разработки программного обеспечения, который предлагает мощь, скорость, гибкость и простоту использования, все одновременно, и этот набор характеристик является лучшим выбором когда дело доходит до создания программного обеспечения, которое должно выглядеть привлекательным и непротиворечивым в широком диапазоне аппаратных платформ.
В последние годы, и особенно с повышением доступности более мощных процессоров по более низким ценам, роль настольных компьютеров и их карманных оппонентов сместилась к выполнению более вычислительно требовательных и сложных задач, таких как машинное зрение(computer vision). Предназначена ли программа для интеллектуального редактирования фильма или фотографии, обеспечения чувствительности здания, подсчета числа объектов на поточной линии или обнаружения дорожных знаков, маршрутов или пешеходов, автономным автомобилем, то машинное зрение используется все больше для решения таких проблем в реальном времени, которые ранее, как предполагалось, могут быть решены только людьми. Это - та область, где фреймворк машинного зрения OpenCV Framework выходит в сцену. За прошлые несколько лет фреймворк OpenCV превратился в развитый межплатформенный фреймворк машинного зрения зрения с фокусом на скорости и производительности. По всему миру разработчики и исследователи используют фреймворк OpenCV для реализации в приложениях машинного зрения их идей и алгоритмов.
Эта книга стремится к тому, чтобы вы получили умение и мощь от совместного использования фреймворков Qt и OpenCV, проведя вас через их фундаментальные понятия и доведя вас до точки, где сможете легко продолжить самостоятельно разрабатывать и поставлять приложения машинного зрения для широкого диапазона платформ. Для способности легко следовать за темами, затронутыми в этой книге, сделаем одиночное предположение(требование) в том, что вы знакомы и обладаете довольно уверенными знаниями о понятиях программирования на языке C++, такими как «классы, шаблоны, наследование и т.д. Хотя, учебные руководства, снимки экрана и примеры, рассмотренные всюду в книге, базируются на операционной системе Windows, но везде, где необходимо, также упомянуто различие в учебном руководстве у операционных систем macOS и Linux.
Для кого предназначена эта книга?
Эта книга предназначена для читателей, заинтересованных построением приложений машинного зрения. Предполагается(требуется) знание(на среднем уровне) программирования на языке C++. Предварительное знание фреймворков Qt5 и OpenCV 3 не требуется, но если вы предварительно познакомитесь с этими фреймворками, то извлечете выгоду при чтении.
Что рассматривает эта книга?
Глава 1 «Введение в OpenCV и Qt» проводит через все требуемые инициализации. Начнем с того, где и как получить фреймворки Qt и OpenCV, и затем в этой главе будет описано, как установить, сконфигурировать, и убедиться, что все правильно установлено в среде разработки.
Глава 2 «Создание первого проекта с использованием QT и OpenCV» берет проведет вас через интегрированную среду разработки Qt Creator, которую мы будем использовать для разработки всех наших приложений. В этой главе изучите, как создать и выполнить проекты приложения.
Глава 3 «Создание комплексного Qt+OpenCV-проекта» рассматривает наиболее распространенные возможности, требуемые для комплексного приложения, включая стили, интернационализацию и поддержку различных языков, плагинов и т.д. Посредством этого процесса мы сами создадим комплексное приложение машинного зрения.
Глава 4 «Классы Mat и QImage» рассматривает основы и обучает вас тому, какие фундаментальные понятия необходимы для написания приложения машинного зрения. В этой главе узнаете все о классе Mat фреймворка OpenCV и о классе QImage фреймворка Qt, и о том, как преобразовать и передать данные между этими двумя фреймворками и многое другое.
Глава 5 «Фреймворк Graphics View» обучает использованию фреймворка представления графики Qt Graphics View и его базовых классов для облегчения и эффективности отображения и манипулирования графики в приложении.
Глава 6 «Обработка изображений в OpenCV» проведет по возможностям обработки изображений, предлагаемые фреймворком OpenCV. Вы узнаете о преобразованиях, фильтрах, цветовых пространствах, шаблонах сравнения и т.д.
Глава 7 «Признаки и дескрипторы» повествует об обнаружении ключевых точек(detecting keypoints) в изображениях, извлечении дескрипторов из ключевых точек и проведения соответствия их друг с другом. В этой главе узнаете о различных ключевых точках и алгоритмах извлечения(экстракции) дескриптора и закончите использованием их для обнаружения и определения местоположения известного объекта в изображении.
Глава 8 «Многопоточность» научит всем возможностям многопоточности, предлагаемым фреймворком Qt. Вы узнаете о мьютексах(mutexes; взаимных исключениях), блокировках чтения-записи(read-write locks), семафорах(semaphores) и различных инструментах синхронизации потоков. Эта глава обучит также технологиям многопоточностии в Qt: и низкого уровня(QThread) и высокого уровня (QtConcurrent).
Глава 9 «Анализ видео» раскрывает, как правильно обработать видео, используя фреймворки Qt и OpenCV. Вы узнаете об отслеживании объектов с использованием алгоритмов MeanShift и CAMShift и познакомитесь с другой функциональностью обработки видеоданных. Эта глава также включает всесторонний обзор всех существенных и фундаментальных понятий для обработки видеоданных, таких как гистограммы(Histograms) и изображения обратной проекции(back-projection images).
Глава 10 «Отладка и тестирование» проведет через возможности отладки интегрированной среды разработки Qt Creator и как она сконфигурирована и установлена. В этой главе Вы также узнаете о возможностях поблочного тестирования(unit testing capabilities), предлагаемых фреймворком Qt, и рассмотрите пример написания тестов блоков(модулей), которые могут быть выполнены вручную или автоматически каждый раз, когда наш проект построен.
Глава 11 «Компоновка и развертывание» научит построению приложений с компоновкой(линковкой) библиотек фреймворков OpenCV и Qt или динамически или статически. В этой главе также узнаете о развертывании приложений, использующих фреймворки Qt и OpenCV, на различных фреймворкх. В конце этой главы мы создадим установщик(installer), используя фреймворк установщика Qt Installer Framework.
Глава 12 «Qt Quick-приложения» знакомит с «быстрыми» приложениями, использующими рантайм-модуль интерпретации Qt Quick и скриптовый язык QML. В этой главе узнаете о синтаксисе языка QML и о том как использовать его вместе со проектировщиком Qt Quick Designer для создания красивых Qt Quick Applications(Qt Quick-приложений) для настольной и мобильной платформ. В этой главе также узнаете об интеграции языков QML и C++.
Что потребуется для работы с книгой?
Несмотря на то, что каждый требуемый инструмент и программное обеспечение, с корректными версиями, и их установка и конфигурирование описаны в начальных главах книги, мы приводим следующий список, который может использоваться в качестве справочника:
Обычный компьютер с установленной на нем более свежей версией операционной системой Windows, macOS или Linux (такая как Ubuntu).
Интегрированная среда разработки Microsoft Среда Разработки Visual Studio (на ОС Windows)
Интегрированная среда разработки Xcode (на ОС macOS)
Утилита командной строки CMake
Фреймворк Qt Framework
Фреймворк OpenCV Framework
Чтобы понять то, что в наши дни представляет собой обычный компьютер, можете поискать онлайн или спросить в местном магазине; однако, уже имеющегося у вас компьютера, по всей вероятности достаточно для начала.
Книга: https://www.packtpub.com/product/computer-vision-with-opencv-3-and-qt5/9781788472395
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев