/ / Algorytm OpenCV wyszukiwania konturów i tworzenie ograniczającego prostokąta - python, algorytm, opencv, wizja komputerowa, kontur

Algorytm OpenCV wyszukiwania konturów i tworzenia prostokąta ograniczającego - python, algorytm, opencv, komputer-wizja, kontur

Witaj w całym społeczeństwie programistów!

Przyzwyczajenie się do mniepotwierdzenie każdego algorytmu, który stosuję w projektach. Niedawno wdrożyłem metody biblioteki OpenCV do wykrywania konturów w ramce wejściowej, a także do rysowania otaczającego prostokąta wokół wykrytego obiektu. Więc wpadłem na pytanie: jakiego algorytmu używa OpenCV podczas wywoływania odpowiednich metod? (Mam na myśli metody exacty cv2.findContours i cv2.boundingRect)

Z góry dziękuję.

Odpowiedzi:

4 dla odpowiedzi № 1

Zgodnie z dokumentacją OpenCV findContours używa „Suzuki, S. i Abe, K., Topologiczna analiza strukturalna zdigitalizowanych obrazów binarnych według granicy"

Funkcja pobiera kontury z obrazu binarnego za pomocą algorytmu [Suzuki85].

Nie znalazłem opisu algorytmu boundingRect, ale znalazłem ten plik w repozytorium opencv

7.a. Prostokąt ograniczający prostokąt Jest to prosty prostokąt, nie uwzględnia obrotu obiektu. Zatem obszar prostokąta granicznego nie będzie minimalny. Znajduje go funkcja cv2.boundingRect (). Niech (x, y) będzie górną lewą współrzędną prostokąta, a (w, h) będzie jej szerokością i wysokością. @code {.py} x, y, w, h = cv2.boundingRect (cnt) cv2.rectangle (img, (x, y), (x + w, y + h), (0,255,0), 2) @ kod końcowy

Wygląda więc na to, że boundingRect znajduje tylko minimalne i maksymalne współrzędne wejściowego zestawu punktów

PS Przepraszam za mój słaby angielski