Muszę połączyć pobliskie kontury na obrazie na podstawie odległości między nimi, która określa, czy kontury mają zostać połączone.
Teraz jest już pytanie dotyczące tego samego problemu tutaj /programming/8973017/opencv-c-obj-c-connect-nearby-contours, ale tutaj łączy wszystkie kontury w jeden. Tego nie chcę. Nie sądzę, że jest w tym jakaś funkcja w opencv, ale możesz zaproponować algorytm. Moja aplikacja wygląda następująco:
Wykrywałem dłonie, więc użyłem algorytmu wykrywania skóry, aby je określić, ale ponieważ moja skóra nie jest biała i może z powodu warunków oświetleniowych czasami kontur łamie się na łokciu. Chcę więc, aby pobliskie kontury były ze sobą połączone, ale nie wszystkie (ponieważ obie moje ręce będą tam w konturach.) (Przez ręce mam na myśli od ramienia do dłoni.)
Co więcej, myślę, że stosując pewne wykrywanie krawędzi, dostanę granice rąk i wykryję, czy część tej łatki wewnątrz tej granicy zostanie wykryta jako skóra, wtedy cały region w tej granicy zostanie wykryty jako skóra, ale nie jestem pewien, jak to zrobić część.
Każda pomoc będzie mile widziana. Z góry dziękuję
Przykładowy obraz:
Na tym obrazie chcę połączyć punkty (8 połączeń), które są mniej niż powiedzmy 40 pikseli odległości, aby uzyskać lewą rękę jako pojedynczy kontur
Moim celem jest uzyskanie tylko konturu dłoni (nie dbam o żaden inny region)