Domanda

Sto lavorando su un progetto OpenCV, cercando di rilevare gli spazi di parcheggio ed estrarre il ROI (regione di interesse) da un'immagine per un ulteriore rilevamento dei veicoli. L'immagine fornita consisterà in tutti gli spazi di parcheggio vuoti. Ho letto diversi post e tutorial su questo. Finora, l'approccio che ho provato è:

1.Convert image to grayscale using `cvtColor()`
2.Blur the image using `blur()`
3.Threshold the image to get edges  `threshold()`
4.Find image contours using findContours()
5.Finding all convex contours using `convexHull()`
6.Approx polygonal regions using `approxPolyDP()`
7.Get the points for the result from 5, if total number of points =4. 
  Check for area and angle. 
.

Immagino che il problema con questo approccio sia quando faccio findContours(), trova i contorni irregolari e più lunghi che causano approxPolyDP per assumere quadrilaterali più grandi del parcheggio stesso. Alcune linee di parcheggio hanno fori / irregolarità.

Ho anche provato goodFeaturesToTrack() e dà angoli abbastanza in modo efficiente, ma i punti memorizzati nell'output sono in ordine arbitrario e penso che sarà piuttosto rigoroso per estrarre quadrilaterrateri / rettangoli.

Ho passato abbastanza ore su questo. C'è un approccio migliore a questo?

Questa è l'immagine con cui sto giocando.

È stato utile?

Soluzione

Prova a utilizzare dilate sull'immagine soglia per far sparire i fori.

Ecco un buon tutorial su di esso: OpenCV erode e dilata .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top