Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00140 007301 11238936 na godz. na dobę w sumie
OpenCV 3. Komputerowe rozpoznawanie obrazu w C++ przy użyciu biblioteki OpenCV - ebook/pdf
OpenCV 3. Komputerowe rozpoznawanie obrazu w C++ przy użyciu biblioteki OpenCV - ebook/pdf
Autor: , Liczba stron: 872
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-1659-1 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> c++ - programowanie
Porównaj ceny (książka, ebook (-20%), audiobook).

Komputerowe rozpoznawanie obrazów przechodzi dziś fazę burzliwego rozwoju. Przyczyniają się do tego ogromna popularność cyfrowych aparatów fotograficznych, wielka liczba grafik zgromadzonych w obszernych internetowych bazach danych, a przede wszystkim coraz doskonalsze algorytmy przetwarzania obrazu. W rozwijaniu tej technologii wielką rolę odegrała biblioteka OpenCV, usprawniając pracę setek tysięcy ludzi. OpenCV 3.x ułatwia efektywne rozwijanie projektów dzięki opartej na języku C++ spójnej architekturze, która doskonale działa na wielu platformach.

Ta książka, przeznaczona dla osób znających język C++, jest praktycznym wprowadzeniem do otwartej biblioteki OpenCV w wersji 3.x. Zawiera też podstawowe informacje na temat komputerowego rozpoznawania obrazu, co powinno ułatwić efektywne posługiwanie się tą biblioteką. Sama biblioteka OpenCV została przedstawiona w sposób umożliwiający bardzo szybkie rozpoczęcie pracy. Książka ułatwia naturalne zrozumienie działania algorytmów, dzięki czemu projektowanie i debugowanie aplikacji nie powinno sprawiać problemów. W ten sposób książka ta staje się świetnym przygotowaniem do zgłębienia bardziej zaawansowanych zagadnień komputerowego rozpoznawania obrazu i uczenia maszynowego.

Najważniejsze zagadnienia:

OpenCV: poznaj i stosuj algorytmy przetwarzania obrazów!


Adrian Kaehler jest naukowcem i założycielem start-upów. Zajmuje się uczeniem maszynowym, modelowaniem statystycznym i komputerowym rozpoznawaniem obrazu. Pracuje w Intel Corporation i w Laboratorium Sztucznej Inteligencji Uniwersytetu Stanforda. Współzakładał Silicon Valley Deep Learning Group.

Gary Rost Bradski jest naukowcem i konsultantem. Zajmuje się robotyką, uczeniem maszynowym i komputerowym rozpoznawaniem obrazów. Pracuje w Laboratorium Sztucznej Inteligencji Uniwersytetu Stanforda. Współtworzył takie biblioteki jak Open Source Computer Vision Library, Machine Learning Library i Probabilistic Network Library (PNL).

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

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 Poleć książkęKup 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  5 Poleć książkęKup książkę cv::mulSpectrums() ................................................................................................................140 cv::multiply() ...........................................................................................................................140 cv::mulTransposed() ..............................................................................................................140 cv::norm() ................................................................................................................................141 cv::normalize() ........................................................................................................................142 cv::perspectiveTransform() ...................................................................................................143 cv::phase() ................................................................................................................................144 cv::polarToCart() ....................................................................................................................145 cv::pow() ..................................................................................................................................145 cv::randu() ...............................................................................................................................145 cv::randn() ...............................................................................................................................146 cv::randShuffle() .....................................................................................................................146 cv::reduce() ..............................................................................................................................147 cv::repeat() ...............................................................................................................................148 cv::scaleAdd() ..........................................................................................................................148 cv::setIdentity() .......................................................................................................................148 cv::solve() .................................................................................................................................149 cv::solveCubic() .......................................................................................................................150 cv::solvePoly() .........................................................................................................................150 cv::sort() ...................................................................................................................................151 cv::sortIdx() .............................................................................................................................151 cv::split() ..................................................................................................................................151 cv::sqrt() ...................................................................................................................................152 cv::subtract() ............................................................................................................................153 cv::sum() ..................................................................................................................................153 cv::trace() .................................................................................................................................153 cv::transform() ........................................................................................................................154 cv::transpose() .........................................................................................................................154 Podsumowanie ........................................................................................................................... 154 Ćwiczenia .................................................................................................................................... 155 6. Rysowanie i pisanie ................................................................................................. 157 Rysowanie .................................................................................................................................... 157 Linie i wypełnione wielokąty ................................................................................................157 Czcionki i tekst ........................................................................................................................163 Podsumowanie ........................................................................................................................... 165 Ćwiczenia .................................................................................................................................... 166 7. Funktory w OpenCV ................................................................................................. 167 Obiekty, które „coś” robią ......................................................................................................... 167 Analiza składowych głównych — cv::PCA .........................................................................167 Rozkład według wartości osobliwych — cv::SVD ..............................................................170 Generator liczb losowych — cv::RNG .................................................................................173 Podsumowanie ........................................................................................................................... 175 Ćwiczenia .................................................................................................................................... 176 6  Spis treści Poleć książkęKup książkę 8. Pliki obrazów, filmów i danych .................................................................................179 HighGUI — przenośny zestaw narzędzi GUI .........................................................................179 Praca z plikami obrazów ............................................................................................................180 Ładowanie i zapisywanie obrazów ....................................................................................... 181 Uwaga na temat kodeków ..................................................................................................... 183 Kompresja i dekompresja ..................................................................................................... 183 Praca z plikami wideo ................................................................................................................184 Odczytywanie wideo za pomocą obiektu cv::VideoCapture ............................................ 184 Zapisywanie wideo za pomocą obiektu cv::VideoWriter ................................................. 190 Zapisywanie danych ...................................................................................................................191 Zapisywanie danych w obiekcie cv::FileStorage ................................................................. 191 Odczytywanie danych z obiektu cv::FileStorage ................................................................ 193 cv::FileNode ............................................................................................................................ 194 Podsumowanie ............................................................................................................................197 Ćwiczenia .....................................................................................................................................197 9. Okna wieloplatformowe i macierzyste ......................................................................201 Praca z oknami ............................................................................................................................201 Macierzysty graficzny interfejs użytkownika HighGUI ................................................... 201 Praca z biblioteką Qt .............................................................................................................. 212 Integracja OpenCV z kompletnymi bibliotekami GUI .................................................... 221 Podsumowanie ............................................................................................................................233 Ćwiczenia .....................................................................................................................................234 10. Filtry i sploty ............................................................................................................235 Informacje ogólne .......................................................................................................................235 Zanim zaczniesz ..........................................................................................................................235 Filtry, jądra i splot .................................................................................................................. 235 Ekstrapolacja krawędzi i warunki brzegowe ...................................................................... 236 Operacje graniczne .....................................................................................................................240 Algorytm Otsu ........................................................................................................................ 242 Zmienna wartość graniczna .................................................................................................. 243 Wygładzanie ................................................................................................................................245 Proste rozmazanie i filtr prostokątny .................................................................................. 246 Filtr medianowy ..................................................................................................................... 247 Filtr Gaussa ............................................................................................................................. 248 Filtr bilateralny ....................................................................................................................... 250 Pochodne i gradienty ..................................................................................................................251 Pochodna Sobela .................................................................................................................... 251 Filtr Scharra ............................................................................................................................ 253 Laplasjan .................................................................................................................................. 254 Spis treści  7 Poleć książkęKup książkę Morfologia obrazu ...................................................................................................................... 255 Dylatacja i erozja .....................................................................................................................257 Ogólna funkcja morfologiczna .............................................................................................260 Otwieranie i zamykanie .........................................................................................................260 Gradient morfologiczny ........................................................................................................263 Top Hat i Black Hat ................................................................................................................265 Tworzenie własnego jądra .....................................................................................................267 Splot z dowolnym filtrem liniowym ........................................................................................ 268 Stosowanie ogólnego filtra przez funkcję cv::filter2D() ....................................................269 Stosowanie ogólnego filtra rozdzielnego za pomocą funkcji cv::sepFilter2D() .............270 Funkcje do tworzenia jąder ...................................................................................................270 Podsumowanie ........................................................................................................................... 271 Ćwiczenia .................................................................................................................................... 271 11. Ogólne przekształcenia obrazu ................................................................................ 277 Wprowadzenie ............................................................................................................................ 277 Rozciąganie, kurczenie, zniekształcanie i obracanie ............................................................. 277 Jednorodna zmiana rozmiaru ...............................................................................................278 Piramidy obrazów ...................................................................................................................279 Mapowanie niejednorodne ...................................................................................................282 Przekształcenia afiniczne .......................................................................................................285 Przekształcenie perspektywiczne ..........................................................................................289 Ogólne odwzorowania ............................................................................................................... 291 Odwzorowania biegunowe ....................................................................................................292 Współrzędne logarytmiczno-biegunowe ............................................................................294 Odwzorowania arbitralne ......................................................................................................297 Renowacja obrazów ................................................................................................................... 298 Inpainting ................................................................................................................................299 Usuwanie szumów ..................................................................................................................300 Wyrównywanie histogramu ..................................................................................................... 303 cv::equalizeHist() — wyrównywanie kontrastu .................................................................304 Podsumowanie ........................................................................................................................... 305 Ćwiczenia .................................................................................................................................... 306 12. Analiza obrazu ........................................................................................................ 307 Wprowadzenie ............................................................................................................................ 307 Dyskretna transformacja Fouriera ........................................................................................... 307 cv::dft() — dyskretna transformacja Fouriera ....................................................................308 cv::idft() — odwrotna dyskretna transformacja Fouriera .................................................310 cv::mulSpectrums() — mnożenie widm ..............................................................................311 Splot przy użyciu dyskretnej transformacji Fouriera ........................................................311 cv::dct() — dyskretna transformacja cosinusowa ..............................................................312 cv::idct() — odwrotna dyskretna transformacja cosinusowa ...........................................313 8  Spis treści Poleć książkęKup książkę Obrazy całkowe ...........................................................................................................................314 cv::integral() — obliczanie standardowego obrazu całkowego ........................................ 316 cv::integral() — suma kwadratowa ...................................................................................... 316 cv::integral() — suma nachylona ......................................................................................... 317 Detektor krawędzi Canny’ego ...................................................................................................317 cv::Canny() .............................................................................................................................. 319 Transformacja Hougha ..............................................................................................................319 Transformacja liniowa Hougha ........................................................................................... 319 Transformacja kołowa Hougha ............................................................................................ 323 Transformacja odległościowa ...................................................................................................327 cv::distanceTransform() — transformacja odległościowa bez etykiet ............................ 327 cv::distanceTransform() — transformacja odległościowa z etykietami ......................... 328 Segmentacja .................................................................................................................................329 Algorytm flood fill .................................................................................................................. 329 Algorytm wododziałowy ....................................................................................................... 332 Algorytm Grabcuts ................................................................................................................ 334 Metoda segmentacji mean-shift ........................................................................................... 336 Podsumowanie ............................................................................................................................338 Ćwiczenia .....................................................................................................................................338 13. Histogramy i szablony ..............................................................................................341 Reprezentacja histogramów w OpenCV ..................................................................................344 cv::calcHist() — tworzenie histogramu z danych .............................................................. 344 Podstawowe operacje na histogramach ...................................................................................346 Normalizacja histogramu ...................................................................................................... 347 Próg histogramu ..................................................................................................................... 347 Znajdowanie najbardziej zapełnionego przedziału ........................................................... 347 Porównywanie histogramów ................................................................................................ 349 Przykłady użycia histogramów ............................................................................................. 351 Zaawansowane metody pracy z histogramami .......................................................................354 Algorytm EMD ....................................................................................................................... 354 Rzutowanie wstecz ................................................................................................................. 358 Dopasowywanie szablonów .......................................................................................................362 Metoda porównywania kwadratu różnicy — cv::TM_SQDIFF ...................................... 363 Znormalizowana metoda porównywania kwadratu różnicy — cv::TM_SQDIFF_NORMED ............................................................................................ 364 Metody korelacji krzyżowej — cv::TM_CCORR ............................................................... 364 Znormalizowana metoda korelacji krzyżowej — cv::TM_CCORR_NORMED ........... 364 Metody dopasowywania współczynnika korelacji — cv::TM_CCOEFF ........................ 364 Znormalizowana metoda dopasowywania współczynnika korelacji — cv::TM_CCOEFF_NORMED ...................................................................................... 365 Podsumowanie ............................................................................................................................367 Ćwiczenia .....................................................................................................................................368 Spis treści  9 Poleć książkęKup książkę 14. Kontury .................................................................................................................. 371 Znajdowanie konturów ............................................................................................................. 371 Hierarchie konturów ..............................................................................................................372 Rysowanie konturów ..............................................................................................................376 Przykład rysowania konturów ..............................................................................................377 Inny przykład rysowania konturów .....................................................................................378 Szybka analiza komponentów połączonych .......................................................................380 Inne zastosowania konturów .................................................................................................... 382 Aproksymacja wielokątów ....................................................................................................382 Geometria i różne rodzaje sumowania ................................................................................383 Testy geometryczne ................................................................................................................389 Dopasowywanie konturów i obrazów ..................................................................................... 390 Momenty ..................................................................................................................................390 Więcej o momentach .............................................................................................................392 Dopasowywanie a momenty Hu ..........................................................................................395 Porównywanie kształtów za pomocą algorytmu Shape Context .....................................396 Podsumowanie ........................................................................................................................... 400 Ćwiczenia .................................................................................................................................... 401 15. Odejmowanie tła ..................................................................................................... 403 Wiadomości podstawowe ......................................................................................................... 403 Wady operacji odejmowania tła ............................................................................................... 404 Modelowanie sceny .................................................................................................................... 405 Wycinek pikseli .......................................................................................................................405 Różnicowanie klatek ..............................................................................................................408 Metoda uśredniania tła .............................................................................................................. 409 Akumulowanie średnich, wariancji i kowariancji ..............................................................414 Bardziej zaawansowana metoda odejmowania tła ................................................................. 422 Struktury ..................................................................................................................................425 Poznawanie tła ........................................................................................................................426 Nauka w obecności ruchomych obiektów pierwszego planu ...........................................428 Różnicowanie tła — znajdowanie obiektów pierwszego planu .......................................429 Przykład użycia modelu tła opartego na księgach kodów ................................................430 Kilka dodatkowych uwag na temat modeli opartych na księgach kodów ......................430 Komponenty połączone dla czyszczenia pierwszego planu ................................................. 431 Szybki test ................................................................................................................................434 Porównanie dwóch metod rozpoznawania tła ....................................................................... 436 Implementacja techniki odejmowania tła w OpenCV .......................................................... 437 Klasa bazowa cv::BackgroundSubtractor ............................................................................437 Metoda Kaewtrakulponga i Bowdena ..................................................................................438 Metoda Zivkovica ...................................................................................................................439 Podsumowanie ........................................................................................................................... 442 Ćwiczenia .................................................................................................................................... 442 10  Spis treści Poleć książkęKup książkę 16. Punkty kluczowe i deskryptory .................................................................................445 Punkty kluczowe i podstawy śledzenia ....................................................................................445 Znajdowanie rogów ............................................................................................................... 446 Wprowadzenie do przepływu optycznego ......................................................................... 450 Rzadki przepływ optyczny — metoda Lucasa-Kanade’a .................................................. 451 Uogólnione punkty kluczowe i deskryptory ...........................................................................461 Przepływ optyczny, śledzenie i rozpoznawanie ................................................................. 462 Jak biblioteka OpenCV obsługuje punkty kluczowe i deskryptory — przypadek ogólny ................................................................. 463 Podstawowe metody wykrywania punktów kluczowych ................................................. 474 Filtrowanie punktów kluczowych ........................................................................................ 512 Metody dopasowywania ........................................................................................................ 513 Wyświetlanie wyników .......................................................................................................... 519 Podsumowanie ............................................................................................................................521 Ćwiczenia .....................................................................................................................................522 17. Śledzenie ................................................................................................................525 Pojęcia dotyczące śledzenia .......................................................................................................525 Gęsty przepływ optyczny ...........................................................................................................526 Algorytm rozwinięcia wielomianu Farnebäcka ................................................................. 527 Algorytm Dual TV-L1 ............................................................................................................ 529 Algorytm Simple Flow ........................................................................................................... 533 Algorytmy mean-shift i Camshift .............................................................................................536 Algorytm mean-shift ............................................................................................................. 537 Algorytm Camshift ................................................................................................................ 540 Szablony ruchu ............................................................................................................................541 Estymatory ...................................................................................................................................548 Filtr Kalmana .......................................................................................................................... 549 Kilka słów na temat rozszerzonego filtra Kalmana ........................................................... 564 Podsumowanie ............................................................................................................................565 Ćwiczenia .....................................................................................................................................565 18. Modele kamery i metody kalibracji ...........................................................................567 Model kamery ..............................................................................................................................568 Podstawy geometrii rzutowej ............................................................................................... 570 Transformacja Rodriguesa .................................................................................................... 572 Zniekształcenia soczewek ...................................................................................................... 573 Kalibracja .....................................................................................................................................576 Macierz obrotu i wektor przesunięcia ................................................................................. 578 Plansze kalibracji .................................................................................................................... 580 Homografia ............................................................................................................................. 587 Kalibracja aparatu .................................................................................................................. 591 Korekcja zniekształceń ...............................................................................................................602 Spis treści  11 Poleć książkęKup książkę Matryce likwidacji zniekształceń ..........................................................................................602 Konwertowanie reprezentacji matryc likwidacji zniekształceń za pomocą funkcji cv::convertMaps() ..............................................................................604 Obliczanie matryc likwidacji zniekształceń za pomocą funkcji cv::initUndistortRectifyMap() ...........................................................................................604 Likwidowanie zniekształceń obrazu za pomocą funkcji cv::remap() ..............................606 Likwidacja zniekształceń za pomocą funkcji cv::undistort() ............................................606 Rzadkie likwidowanie zniekształceń za pomocą funkcji cv::undistortPoints() .............607 Podsumowanie technik kalibracji ............................................................................................ 607 Podsumowanie ........................................................................................................................... 610 Ćwiczenia .................................................................................................................................... 611 19. Rzutowanie i trójwymiarowe widzenie .................................................................... 613 Rzutowanie .................................................................................................................................. 614 Przekształcenia afiniczne i perspektywiczne .......................................................................... 615 Przykład przekształcenia na widok z góry ..........................................................................616 Określanie pozycji trójwymiarowych obiektów ..................................................................... 621 Określanie pozycji za pomocą jednej kamery .....................................................................621 Obrazowanie stereo .................................................................................................................... 623 Triangulacja .............................................................................................................................624 Geometria epipolarna ............................................................................................................628 Macierz zasadnicza i macierz fundamentalna ....................................................................630 Obliczanie linii epipolarnych ................................................................................................638 Kalibracja stereo ......................................................................................................................639 Rektyfikacja stereo ..................................................................................................................643 Korespondencja stereo ...........................................................................................................652 Kalibracja stereo, rektyfikacja i korespondencja — przykładowy program ...................665 Matryce głębi z trójwymiarowej reprojekcji .......................................................................671 Struktura z ruchu ........................................................................................................................ 673 Dopasowywanie linii w dwóch i trzech wymiarach .............................................................. 673 Podsumowanie ........................................................................................................................... 676 Ćwiczenia .................................................................................................................................... 677 20. Podstawy uczenia maszyn w OpenCV ....................................................................... 679 Czym jest uczenie maszyn? ....................................................................................................... 679 Szkolenie i zbiory danych testowych ...................................................................................680 Uczenie nadzorowane i nienadzorowane ............................................................................681 Modele generacyjne i dyskryminacyjne ..............................................................................683 Algorytmy ML w OpenCV ....................................................................................................683 Zastosowania metod uczenia maszyn w komputerowym rozpoznawaniu obrazu .......685 Znaczenie zmiennej ................................................................................................................687 Diagnozowanie usterek w algorytmach uczenia maszyn ..................................................688 12  Spis treści Poleć książkęKup książkę Stare procedury w bibliotece ML ..............................................................................................694 K-średnich ............................................................................................................................... 694 Odległość Mahalanobisa ....................................................................................................... 699 Podsumowanie ............................................................................................................................703 Ćwiczenia .....................................................................................................................................703 21. StatModel — standardowy model uczenia w OpenCV ...............................................705 Podstawowe procedury biblioteki ML .....................................................................................705 Szkolenie i struktura cv::ml::TrainData .............................................................................. 707 Prognozowanie ....................................................................................................................... 713 Algorytmy uczenia maszyn oparte na interfejsie cv::StatModel ..........................................714 Naiwny lub normalny klasyfikator Bayesa ......................................................................... 714 Binarne drzewa decyzyjne ..................................................................................................... 719 Boosting ................................................................................................................................... 732 Drzewa losowe ........................................................................................................................ 738 Maksymalizacja oczekiwań ................................................................................................... 742 K najbliższych sąsiadów ........................................................................................................ 745 Wielowarstwowy perceptron ................................................................................................ 748 Maszyna wektorów nośnych ................................................................................................ 756 Podsumowanie ............................................................................................................................765 Ćwiczenia .....................................................................................................................................766 22. Wykrywanie obiektów .............................................................................................771 Techniki wykrywania obiektów oparte na drzewach .............................................................771 Klasyfikatory kaskadowe ....................................................................................................... 772 Uczenie nadzorowane i teoria wzmacniania ...................................................................... 774 Uczenie się nowych obiektów .............................................................................................. 782 Wykrywanie obiektów za pomocą maszyn wektorów nośnych ...........................................790 Wykrywanie obiektów metodą Latent SVM ...................................................................... 790 Algorytm Bag of Words i kategoryzacja semantyczna ..................................................... 793 Podsumowanie ............................................................................................................................798 Ćwiczenia .....................................................................................................................................798 23. Przyszłość biblioteki OpenCV ....................................................................................801 Przeszłość i teraźniejszość ..........................................................................................................801 OpenCV 3.x ............................................................................................................................ 802 Czy nasze prognozy się sprawdziły? .........................................................................................803 Przyszłość .....................................................................................................................................804 Najświeższe wiadomości o GSoC ......................................................................................... 805 Wsparcie ze strony społeczności .......................................................................................... 807 Strona OpenCV.org ............................................................................................................... 808 Spekulacje na temat sztucznej inteligencji ..............................................................................809 Posłowie .......................................................................................................................................812 Spis treści  13 Poleć książkęKup książkę A Rodzaje podziału płaszczyzn .................................................................................... 813 Triangulacja Delaunaya, teselacja Woronoja ......................................................................... 813 Tworzenie podziałów Delaunaya lub Woronoja ................................................................816 Poruszanie się po podziałach Delaunaya ............................................................................817 Przykłady .................................................................................................................................823 Ćwiczenia .................................................................................................................................... 824 B Repozytorium opencv_contrib ................................................................................ 825 Przegląd modułów repozytorium opencv_contrib ................................................................ 825 Zawartość katalogu opencv_contrib ....................................................................................825 C Wzory kalibracji ...................................................................................................... 829 Wzory kalibracji wykorzystywane w bibliotece OpenCV .................................................... 829 Bibliografia ............................................................................................................. 835 Skorowidz .............................................................................................................. 849 14  Spis treści Poleć książkęKup książkę ROZDZIAŁ 11. Ogólne przekształcenia obrazu Wprowadzenie W poprzednich rozdziałach opisaliśmy klasę przekształceń obrazu, które można przedstawić na podstawie splotu. Oczywiście istnieje wiele operacji, których w ten sposób nie da się wyrazić (tzn. przy użyciu małego okienka przesuwanego nad obrazem i wykonującego jakieś czynności). Za- sadniczo przekształcenia, które można wyrażać jako sploty, mają charakter lokalny, to znaczy choć mogą zmieniać cały obraz, sposób przetworzenia konkretnego piksela zależy tylko od niewielkiej liczby otaczających go pikseli. Transformacje opisywane w tym rozdziale są pozbawione tej wła- ściwości. Niektóre z najbardziej przydatnych przekształceń obrazu są proste (np. zmiana rozmiaru) i stosuje się je bardzo często. Inne są przeznaczone do znacznie bardziej zaawansowanych zastosowań. Przedstawione przez nas w tym rozdziale przekształcenia powodują przekonwertowanie jednego obrazu w inny. Obraz wynikowy często będzie miał inny rozmiar niż oryginał albo będzie się od niego różnił pod innym względem, ale zawsze będzie zasadniczo obrazem w takim samym sensie jak grafika wejściowa. W rozdziale 12. omawiamy także operacje, które w wyniku mogą zwrócić całkiem nową reprezentację. W komputerowym rozpoznawaniu obrazu jest kilka przekształceń, których używa się bardzo często. Biblioteka OpenCV zawiera kompletne implementacje niektórych najpopularniejszych spośród nich oraz składniki potrzebne do implementacji własnych, bardziej zaawansowanych transformacji. Rozciąganie, kurczenie, zniekształcanie i obracanie Najprostszym możliwym rodzajem przekształcenia jest zmiana rozmiaru obrazu w celu jego powięk- szenia lub zmniejszenia. Operacje te jednak nie są wcale tak banalne, jak się wydaje, ponieważ zmiana rozmiaru natychmiast implikuje pytania o sposób interpolacji (w przypadku powiększania) lub łączenia (w przypadku zmniejszania) pikseli. 277 Poleć książkęKup książkę Jednorodna zmiana rozmiaru Często otrzymujemy obraz o określonym rozmiarze i chcemy go zmniejszyć lub powiększyć. Oba te zadania możemy wykonać za pomocą jednej funkcji. cv::resize() Funkcja cv::resize() zaspokaja wszystkie potrzeby programisty w dziedzinie zmiany rozmiaru obrazów. Należy jej przekazać na wejściu obraz i określić rozmiar docelowy, a funkcja wygeneruje nowy obraz o żądanym rozmiarze. void cv::resize( cv::InputArray src, // obraz wejściowy cv::OutputArray dst, // obraz wynikowy cv::Size dsize, // nowy rozmiar double fx = 0, // skala wymiaru x double fy = 0, // skala wymiaru y int interpolation = CV::INTER_LINEAR // metoda interpolacji ); Rozmiar o
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

OpenCV 3. Komputerowe rozpoznawanie obrazu w C++ przy użyciu biblioteki OpenCV
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: