Elektryk0 Napisano Wrzesień 30, 2012 Udostępnij Napisano Wrzesień 30, 2012 W tej części zajmiemy się zagadnieniem wykrywania obiektów. Biblioteka OpenCV oferuje szereg narzędzi, które ułatwią nam to zadanie. Program będzie pobierał klatki z kamery internetowej, następnie będzie na bieżąco przetwarzał obraz, oraz zwracał współrzędne środka prostokąta otaczającego największy obiekt o ustalonym przez nas kolorze. UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.Przeczytaj całość »Poniżej znajdują się komentarze powiązane z tym wpisem. 1 Cytuj Link do komentarza Share on other sites More sharing options...
Marooned Październik 1, 2012 Udostępnij Październik 1, 2012 Żeby zrozumieć sprawę jeszcze lepiej popatrzmy jak wygląda poniższy obrazek w wersji hsv. Hmm, tutaj jest coś nie tak. Przy zmianie sposobu reprezentacji koloru obraz generalnie się nie zmienia (bądź zmiany są minimalne). U Ciebie nie zmienił się tylko sposób reprezentacji ale doszedł jakiś nieznany filtr. Cytuj Link do komentarza Share on other sites More sharing options...
Mars Październik 1, 2012 Udostępnij Październik 1, 2012 generalnie się nie zmienia (bądź zmiany są minimalne) Przy zamianie RGB->CMYK są niewielkie zmiany, bo to podobne układy (monitory pracują na RGB). Jednakże takie HSV jest inaczej definiowane i chyba stąd ta różnica. "An RGB image on the left and the converted HSV image on the right." Źródło: http://opticks.org/confluence/display/opticksExt/COAN+General+Image+Processing Cytuj Link do komentarza Share on other sites More sharing options...
Elektryk0 Październik 1, 2012 Autor tematu Udostępnij Październik 1, 2012 Wszystko jest jak najbardziej OK. Funkcja konwertująca działa dobrze. Natomiast jeśli chodzi o to, że obrazki się różnią, no cóż na szybko mogę wysnuć wniosek, że skoro klasa Mat nie przechowuje w swoim wnętrzu informacji o modelu barw, w którym jest reprezentowany dany obrazek co wynika dokumentacji http://www710.univ-lyon1.fr/~eguillou/documentation/opencv2/classcv_1_1_mat.html to po prostu informacje takie nie są dostępne w funkcji imshow, gdyż ich przecież do niej w żaden niezależny sposób nie przekazujemy, a więc funkcja po prostu wyświetla obrazek tak jakby był w standardowym modelu barw. Oczywiście mogę się mylić, gdyż są to tylko moje przypuszczenia. Nie mam jednak najmniejszych wątpliwości co do tego, że konwersja działa poprawnie, gdyż jest realizowana w całości przez funkcję biblioteczną. Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Marooned Październik 2, 2012 Udostępnij Październik 2, 2012 Generalnie gdyby przy zmianie modelu następowała zmiana barw, to nie miało by to większego sensu. Dany kolor można przedstawić za pomocą różnych wartości w zależności od modelu. Najpopularniejsze modele, to: * bazujące na kolorach składowych, między innymi: RGB, CMY, CMYK * bazujące na parametrach koloru, między innymi: HSV, HSL, Lab Niektóre kolory mogą istnieć tylko w niektórych modelach i są poza możliwym zakresem w innych, jednakże za pomocą prostych wzorów i w obsługiwanym zakresie można się płynnie przemieszczać między reprezentacją tego samego koloru. Dlatego zaprezentowana tutaj zmiana musi tyczyć się czegoś innego. Możliwe, że jest to rzutowanie HSV na RGB (BGR) bez przeliczania. Tylko czy takie rzutowanie ma jakiś sens to już temat do głębszej dysputy. Jeśli zakładamy, że R=H, G=S i B=V to zwyczajnie wizualizujemy kolorem czerwonym odcień, zielonym nasycenie, a niebieskim jasność. No może ma to sens. Ostatnio dowiedziałem się, że rzutwanie float na int i z powrotem też ma sens, co generalnie mocno mnie zaskoczyło. No nic, tak chciałem zasygnalizować, że coś mi tu nie pasuje 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Luty 11, 2015 Udostępnij Luty 11, 2015 Artykuł został przeniesiony na blog -> OpenCV - Wykrywanie obiektów Cytuj Link do komentarza Share on other sites More sharing options...
pokry2 Luty 13, 2015 Udostępnij Luty 13, 2015 Cześć jak wygląda implementacja tej biblioteki na uk ? np cortex - m3 z zestawu zl27ARM ?Jak uk będzie sobie radził ? Cytuj Link do komentarza Share on other sites More sharing options...
krzyyyy Czerwiec 11, 2016 Udostępnij Czerwiec 11, 2016 Cześć, mam kłopot z programem po skompilowaniu program się wyłącza z błędem: The program '[7736] openCV_test.exe' has exited with code -1073740777 (0xc0000417). Co ciekawe gdy zakryję kamerkę palcem (czarny ekran) program działa. Cytuj Link do komentarza Share on other sites More sharing options...
bolecki Czerwiec 29, 2016 Udostępnij Czerwiec 29, 2016 Czy ktoś ma jeszcze problemy z implementacją biblioteki? Nie mam pojęcia jak to ugryźć. Cytuj Link do komentarza Share on other sites More sharing options...
Discovery Lipiec 9, 2016 Udostępnij Lipiec 9, 2016 Gdy odpalam program do wykrywania kolorowych obiektów, to wyskakuje mi taki błąd: Debug Assertion Failed! Program: C:\Windows\system32\MSVCP110D.dll File: c:\...\vc\include\vector Line: 1140 Expression: vector subscript out of range Jednak, gdy zamienię waitKey(20) na np. waitKey(1000) to wtedy wszystko działa. Co więcej, zauważyłem, że błąd pojawia się gdy używam funkcji inRange. Natomiast w ostatnim programie po odpaleniu wyskakuje taki błąd: Unhandled exception at 0x0FB7FD8A (opencv_imgproc249d.dll) in ConsoleApplication3.exe: 0xC0000005: Access violation reading location 0xCDCDCDCD. Ktoś wie jak można to naprawić? Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!