Immagine Ingresso: Rilevare gruppi di pixel bianchi di un'immagine utilizzando OpenCV
Output previsto:
intendo per adattarsi a tre (o qualche numero di) poligoni (per questo caso, rettangoli) per indicare i "grandi" blob bianchi in questa immagine. I rettangoli disegnati nell'immagine di output sono secondo la mia percezione delle regioni bianche. Non mi aspetto che l'algoritmo generi queste stesse regioni bouding. Quello che desidero è di inserire un certo numero di poligoni stretti attorno ai grappoli di pixel bianchi.
La mia soluzione iniziale consisteva nel trovare contorni per questa immagine e nel montare un poligono convesso chiuso attorno a ciascun contorno, trovando lo scafo convesso dei punti in ciascun contorno.
Tuttavia, poiché le regioni bianche sono molto frammentate con regioni nere all'interno e rigate lungo i bordi, il numero di contorni restituiti da cv2.findContours è molto elevato (circa 500 circa). Per questo motivo, il montaggio di uno scafo convesso non migliora la forma delle regioni bianche. Le regioni bianche mantengono per lo più le loro forme astratte originali. Il mio obiettivo sarebbe quello di unire i numerosi piccoli contorni di una regione bianca in un intero contorno contenente il quale posso quindi adattarsi a uno scafo convesso.
Come posso risolvere questo problema? Dovrei utilizzare inizialmente un algoritmo di clustering sui punti del contorno per trovare i contorni vicini l'uno all'altro?
http://en.wikipedia.org/wiki/DBSCAN può aiutare. sotto python scikit. demo qui http://scikit-learn.org/stable/auto_examples/cluster/plot_dbscan.html – baci