mam nadzieję, że jest to właściwe miejsce, aby zapytać. w innym przypadku przepraszam za mój błąd i proszę o poradę, żebym był lepszy.
Próbuję wdrożyć super prosty wykrywacz skóry przy użyciu pewnego zakresu obrazu HSB. używam podejścia opisanego tutaj i tutaj .
próbuję użyć źródła wideo z mojej kamery internetowej. jeśli użyję oświetlenia słonecznego, działa całkiem dobrze (nie tak dobrze, ale całkiem dobrze), ale przy świetle neonowym… to jest bałagan. wykryto wiele białych obszarów i wszędzie dużo hałasu.
dlaczego?
używam algorytmu opisanego w drugim źródle :
- konwersja obrazu ho przestrzeni barw HSV
- umieść biały w zakresie 0 <H <38
- filtr rozszerzający
- filtr erodujący
- filtr rozmycia
Weź pod uwagę różne wartości uzyskane w kolorze HSV przy zastosowaniu światła neonowego: przykład jego odchylenia jest tutaj . Spróbuj dostosować algorytm, aby dostosował się do tych wartości.
Tutaj jest inny algorytm do wykrywania skóry, a do wykrywania warunków świetlnych możesz użyć tego .
Kolejny algorytm związany z wykrywaniem skóry, ale niezbyt związany z efektami światła neonowego, to ten .
źródło
Odpowiedzi, które otrzymałeś do tej pory, wskazują na dobre alternatywne metody, ale jeśli jesteś zainteresowany użyciem czegoś takiego jak początkowy algorytm, prawdopodobnie nie jest to trudne. Musisz tylko dostosować się do osobliwości HSV OpenCV. Biorąc pod uwagę dziwne wyniki, zakładam, że prawdopodobnie użyłeś jednej z bardziej powszechnych reprezentacji numerycznych HSV przy wybieraniu progów i / lub przy konwersji pikseli?
OpenCV reprezentuje HSV inaczej niż większość innych źródeł, które mogłeś znaleźć:
Prawdopodobnie za późno, aby ci pomóc, ale było to interesujące pytanie, a ktoś inny może napotkać ten sam problem.
źródło
źródło