Używamy cookies, aby ułatwić korzystanie z Portalu. Możesz określić warunki przechowywania, dostępu do plików cookies w Twojej przeglądarce. Dowiedz się więcej.
strona główna Strona główna | Nowości | Promocje | Zapowiedzi Twoje konto | Zarejestruj | Schowek | Kontakt | Pomoc
mapa działów
Szukaj: szukanie zaawansowane
Koszyk
Książki \ Programowanie \ C++

OpenCV 3. Komputerowe rozpoznawanie obrazu w C++ przy użyciu biblioteki OpenCV Język: 1

978-83-283-1656-0

Cena Brutto: 149.00

Cena netto: 141.90

Ilość:
Wersja: Drukowana
Autor Adrian Kaehler, Gary Bradski
Liczba_stron 977
Wydawnictwo Helion
Oprawa twarda
Data_Wydania 2017-11-17

OpenCV 3

Komputerowe rozpoznawanie obrazu w C++ przy użyciu biblioteki OpenCV



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:

  • Przegląd biblioteki OpenCV i zawarte w niej funkcje
  • Praca z plikami obrazów, filmów i danych oraz przekształcanie obrazów
  • Ważniejsze algorytmy do pracy na obrazach
  • Punkty kluczowe: wykrywanie i filtrowanie
  • Trójwymiarowe widzenie, ruch, określanie pozycji
  • Uczenie maszyn w OpenCV

    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 Garyego(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)

    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)

    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)
      • 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)

    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)
    • 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)
    • 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 Cannyego (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)

    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)

    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-Kanadea (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)
      • 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)
    • 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)

    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)

powrót
 
Produkty Podobne
OpenCV 3. Komputerowe rozpoznawanie obrazu w C++ przy użyciu biblioteki OpenCV
Opus magnum C++11. Programowanie w języku C++ (komplet)
Python, C++, JavaScript. Zadania z programowania
C++. Zadania z programowania z przykładowymi rozwiązaniami. Wydanie II
C++ w 24 godziny. Wydanie VI
C++ Templates: The Complete Guide, 2nd Edition
Wzorce projektowe. Leksykon kieszonkowy
C++ in One Hour a Day, Sams Teach Yourself, 8th Edition
Zestaw 2 książek C++ (C++ Optymalizacja kodu + Skuteczny nowoczesny C++)
Advanced Qt Programming. Creating Great Software with C++ and Qt 4
Więcej produktów