Jak odczytać tylko raz obiekt, który pojawia mi się kilka razy w danym zakresie

0

Hej,

pobieram z filmu po kolei klatki i sprawdzam czy dany obiekt (poruszają się z stałą prędkością) jest w danym zakresie, jeżeli jest to odczytuje ilość kropek na tym obiekcie. Niestety odczytuję kropki po parę razy w zależności od tego ile razy znajdują się w zakresie. Ja chce tylko raz odczytać ilość kropek obiektu, który pojawi mi się w danym zakresie. Niestety obiekty są ustawione w różnej odległości od siebie wiec nie mogę precyzyjnie określić miejsca z którego mam je odczytywać.

(zakresy mogą się teraz trochę różnic, bo się trochę bawiłem z tym)

 while(True):
        ret, frame = cap.read()
        
        pictureWithRectangle = cv2.rectangle(frame,(250,70),(500,300),(255,0,0),1) # obszar z którego odczytywac bede

        finder = cv2.SimpleBlobDetector_create()

        keypoints = finder.detect(pictureWithRectangle )

        picture = cv2.drawKeypoints(img_out, keypoints, np.array([]), (0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

        cv2.imshow('frame',picture )

        kropeczki= 0
        for dotes in keypoints:
                if(dotes.pt[0] > 250 and dotes.pt[0] < 500): # oś x odczytanych kropek na zdjęciu
                    kropeczki+= 1
                    if(kropeczki== len(keypoints)):
                        # zrob cos
0

Co muszę dodać, by ktoś mi udzielił odpowiedzi do pytania?

0

Na przykład jasny opis co ty w ogóle robisz i co chcesz osiągnąć. Ja przeczytałem twój post oraz kod i nadal nie rozumiem. Napisz to w takiej formie w jakiej zgłasza się bugi:

  1. Co zrobiłeś, dokładnie, krok po kroku, tak zeby dało się to odtworzyć lokalnie
  2. Czego oczekiwałeś
  3. Co faktycznie się stało i dlaczego uważasz że to błąd

1 użytkowników online, w tym zalogowanych: 0, gości: 1