OpenCV_3_Komputerowe_rozpoznawanie_obrazu_w_C_przy_uzyciu_biblioteki_OpenCV_opencv.pdf

(2329 KB) Pobierz
Tytuł oryginału: Learning OpenCV 3: Computer Vision in C++ with the OpenCV Library
Tłumaczenie: Łukasz Piwko
ISBN: 978-83-283-1656-0
© 2018 Helion S.A.
Authorized Polish translation ofthe English edition of Learning OpenCV 3, ISBN 9781491937990 ©
2017 Adrian Kaehler, Gary Bradski
This translation is published and sold by perrnission of O'Reilly Media, Inc., which owns or controls all
rights to publish and sell the same.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any
means, electronic or mechanical, including photocopying, recording or by any information storage
retrieval system, without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje
były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za
związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo
HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe
z wykorzystania informacji zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/opencv.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/opencv
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis treści
Wstęp ....................................................................................................................... 15
Przeznaczenie książki ...................................................................................................................15
Adresaci książki .........................................................................................................................16
Czym nie jest ta książka ............................................................................................................17
O przykładowych programach ....................................................................................................17
Warunki .........................................................................................................................................17
Jak najlepiej korzystać z tej książki .............................................................................................18
Konwencje typograficzne .............................................................................................................19
Podziękowania ..............................................................................................................................20
Podziękowania za pomoc przy tworzeniu biblioteki OpenCV ...........................................20
Podziękowania za pomoc przy pisaniu książki .....................................................................21
Kilka słów od Adriana ..............................................................................................................21
Kilka słów od Gary’ego .............................................................................................................22
1. Wprowadzenie .......................................................................................................... 25
Czym jest OpenCV? .....................................................................................................................25
Kto używa biblioteki OpenCV? ..................................................................................................26
Czym jest komputerowe rozpoznawanie obrazu? ....................................................................27
Pochodzenie biblioteki OpenCV ................................................................................................30
Schemat blokowy OpenCV ......................................................................................................31
Przyspieszanie działania biblioteki OpenCV za pomocą IPP .............................................32
Do kogo należy OpenCV? ........................................................................................................33
Pobieranie i instalowanie OpenCV ............................................................................................33
Instalacja .....................................................................................................................................34
Pobieranie najnowszej wersji OpenCV przez Git ....................................................................36
Kompletna dokumentacja OpenCV ...........................................................................................37
Dokumentacja dołączona do biblioteki .................................................................................37
Dokumentacja internetowa i strona wiki ..............................................................................37
Repozytorium kodu od społeczności .........................................................................................39
Pobieranie i kompilowanie modułów z repozytorium opencv_contrib ...........................40
Przenośność ...................................................................................................................................40
Podsumowanie ..............................................................................................................................41
Ćwiczenia .......................................................................................................................................42
3
Kup książkę
Poleć książkę
2. Wprowadzenie do OpenCV ......................................................................................... 43
Pliki dołączane .............................................................................................................................. 43
Zasoby ........................................................................................................................................ 44
Pierwszy program — wyświetlanie obrazu ............................................................................... 44
Drugi program — wideo ............................................................................................................. 47
Przegląd ......................................................................................................................................... 48
Prosta transformacja .................................................................................................................... 52
Trochę bardziej skomplikowana transformacja ....................................................................... 53
Dane z kamery .............................................................................................................................. 55
Zapisywanie w pliku AVI ............................................................................................................ 56
Podsumowanie ............................................................................................................................. 57
Ćwiczenia ...................................................................................................................................... 58
3. Typy danych OpenCV ................................................................................................. 59
Wiadomości podstawowe ........................................................................................................... 59
Typy danych OpenCV ................................................................................................................. 59
Przegląd podstawowych typów danych ................................................................................. 60
Typy podstawowe — szczegóły ............................................................................................... 61
Obiekty pomocnicze ................................................................................................................ 68
Funkcje pomocnicze ................................................................................................................ 75
Struktury szablonowe ............................................................................................................... 81
Podsumowanie ............................................................................................................................. 82
Ćwiczenia ...................................................................................................................................... 83
4. Obrazy i duże typy tablicowe ..................................................................................... 85
Pamięć dynamiczna i zmienna ................................................................................................... 85
Klasa cv::Mat — n-wymiarowe tablice gęste ......................................................................... 85
Tworzenie tablicy ...................................................................................................................... 86
Indywidualny dostęp do elementów tablicy ......................................................................... 90
N-arny iterator tablicowy — NAryMatIterator .................................................................... 93
Dostęp do elementów tablicy według bloków ...................................................................... 95
Wyrażenia macierzowe — algebra i klasa cv::Mat ............................................................... 97
Rzutowanie nasyceniowe ......................................................................................................... 98
Co jeszcze potrafią tablice? ...................................................................................................... 99
Klasa cv::SparseMat — tablice rzadkie ................................................................................ 100
Dostęp do elementów tablicy rzadkiej ................................................................................. 101
Funkcje dostępne tylko dla tablic rzadkich ......................................................................... 103
Struktury szablonowe dla dużych typów tablicowych ....................................................... 104
Podsumowanie ........................................................................................................................... 106
Ćwiczenia .................................................................................................................................... 106
4
Spis treści
Poleć książkę
Kup książkę
5. Operacje na tablicach ...............................................................................................109
Co jeszcze można zrobić z tablicami? ......................................................................................109
cv::abs() .................................................................................................................................... 112
cv::absdiff() .............................................................................................................................. 113
cv::add() ................................................................................................................................... 113
cv::addWeighted() .................................................................................................................. 113
cv::bitwise_and() .................................................................................................................... 115
cv::bitwise_not() ..................................................................................................................... 115
cv::bitwise_or() ....................................................................................................................... 116
cv::bitwise_xor() ..................................................................................................................... 116
cv::calcCovarMatrix() ............................................................................................................ 116
cv::cartToPolar() .................................................................................................................... 118
cv::checkRange() .................................................................................................................... 119
cv::compare() .......................................................................................................................... 119
cv::completeSymm() .............................................................................................................. 120
cv::convertScaleAbs() ............................................................................................................ 120
cv::countNonZero() ............................................................................................................... 121
cv::cvarrToMat() .................................................................................................................... 121
cv::dct() .................................................................................................................................... 122
cv::dft() ..................................................................................................................................... 122
cv::cvtColor() .......................................................................................................................... 123
cv::determinant() .................................................................................................................... 126
cv::divide() ............................................................................................................................... 127
cv::eigen() ................................................................................................................................ 127
cv::exp() ................................................................................................................................... 128
cv::extractImageCOI() ........................................................................................................... 128
cv::flip() .................................................................................................................................... 128
cv::gemm() .............................................................................................................................. 128
cv::getConvertElem() i cv::getConvertScaleElem() ........................................................... 129
cv::idct() ................................................................................................................................... 130
cv::idft() ................................................................................................................................... 130
cv::inRange() ........................................................................................................................... 130
cv::insertImageCOI() ............................................................................................................. 131
cv::invert() ............................................................................................................................... 131
cv::log() .................................................................................................................................... 132
cv::LUT() ................................................................................................................................. 132
cv::Mahalanobis() ................................................................................................................... 133
cv::max() .................................................................................................................................. 133
cv::mean() ................................................................................................................................ 135
cv::meanStdDev() ................................................................................................................... 135
cv::merge() ............................................................................................................................... 136
cv::min() .................................................................................................................................. 136
cv::minMaxIdx() ..................................................................................................................... 137
cv::minMaxLoc() .................................................................................................................... 137
cv::mixChannels() .................................................................................................................. 138
Spis treści
Kup książkę
5
Poleć książkę
Zgłoś jeśli naruszono regulamin