/ / OpenCV algoritmus vyhľadávania obrysov a tvorba ohraničujúceho obdĺžnika - python, algoritmus, opencv, computer-vision, obrys

OpenCV algoritmus vyhľadávania kontúr a vytvorenie ohraničujúceho obdĺžnika - python, algoritmus, opencv, computer-vision, obrys

Ahoj celej programátorskej spoločnosti!

Pre mňa je zvykompotvrdenie každého algoritmu, ktorý v projektoch používam. Prednedávnom som implementoval knižničné metódy OpenCV na detekciu obrysov vo vstupnom rámci a na vykreslenie ohraničujúceho obdĺžnika okolo detekovaného objektu. Tak som prišiel s otázkou: aký algoritmus v skutočnosti používa OpenCV pri volaní vhodných metód? (Mám na mysli presné metódy cv2.findContours a cv2.boundingRect)

Vopred ďakujem.

odpovede:

4 pre odpoveď č. 1

Podľa dokumentácie OpenCV findContours používa “Suzuki, S. a Abe, K., topologická štrukturálna analýza digitalizovaných binárnych obrazov podľa hraníc"

Funkcia načíta obrysy z binárneho obrazu pomocou algoritmu [Suzuki85].

Nenašiel som popis algoritmu boundingRect, ale našiel sa tento súbor v opencv repo

7.a Rovný ohraničujúci obdĺžnik Je to priamy obdĺžnik, nepovažuje rotáciu objektu. Takže oblasť ohraničujúceho obdĺžnika nebude minimálna. Nachádza sa vo funkcii cv2.boundingRect (). Nech (x, y) je súradnica pravouholníka vľavo hore a (w, h) jej šírka a výška. @code {.py} x, y, w, h = cv2.boundingRect (cnt) cv2. rectangle (img, (x, y), (x + w, y + h), (0,255,0), 2) @endcode

Zdá sa teda, že funkcia boundingRect nájde iba minimálnu a maximálnu súradnicu vstupnej sady bodov

PS Ospravedlňujem sa za moju zlú angličtinu