Ciao a tutta la società dei programmatori!
Mi è diventato normale abituarmiriconoscimento di ogni algoritmo che impiego nei progetti. E non molto tempo fa ho implementato i metodi di libreria OpenCV per rilevare i contorni all'interno del frame di input e per disegnare un rettangolo di delimitazione attorno all'oggetto rilevato. Quindi mi sono posto una domanda: quale algoritmo è effettivamente usato da OpenCV quando chiama metodi appropriati? (Intendo i metodi exacty cv2.findContours e cv2.boundingRect)
Grazie in anticipo.
risposte:
4 per risposta № 1Secondo la documentazione di OpenCV findContours utilizza "Suzuki, S. e Abe, K., Analisi topologica strutturale di immagini binarie digitalizzate dopo il confine successivo"
La funzione recupera i contorni dall'immagine binaria utilizzando l'algoritmo [Suzuki85].
Non ho trovato la descrizione dell'algoritmo Rect bounding ma ho trovato questo file in opencv repo
7.a. Rettangolo rettilineo È un rettangolo retto, non considera la rotazione dell'oggetto, quindi l'area del rettangolo di delimitazione non sarà minima. È trovato dalla funzione cv2.boundingRect (). Sia (x, y) la coordinata in alto a sinistra del rettangolo e (w, h) la sua larghezza e altezza. @code {.py} x, y, w, h = cv2.boundingRect (cnt) cv2.rectangle (img, (x, y), (x + w, y + h), (0,255,0), 2) @endcode
Quindi sembra che boundingRect trovi solo le coordinate minime e massime dell'insieme di punti di input
PS Scusa per il mio povero inglese