Question

Je travaille sur un projet openCV, essayant de détecter des places de stationnement et d'extraire le retour sur investissement (région d'intérêt) d'une image pour une détection plus approfondie des véhicules.L'image fournie comprendra toutes les places de stationnement vides.J'ai lu plusieurs articles et tutoriels à ce sujet.Jusqu'à présent, les approches que j'ai essayées sont les suivantes :

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. 

Je suppose que le problème avec cette approche est quand je le fais findContours(), il trouve des contours irréguliers et plus longs ce qui provoque approxPolyDP supposer des quadrilatères plus grands que l'espace de stationnement lui-même.Certaines lignes de stationnement présentent des trous/irrégularités.

j'ai aussi essayé goodFeaturesToTrack() et cela donne des coins assez efficacement, mais les points stockés dans la sortie sont dans un ordre arbitraire et je pense qu'il va être assez rigoureux d'en extraire des quadrilatères/rectangles.

J'ai passé de très bonnes heures là-dessus.Existe-t-il une meilleure approche à ce sujet ?

Ce est l’image avec laquelle je joue.

Était-ce utile?

La solution

Essayez d'utiliser dilate sur l'image seuillée pour faire disparaître les trous.

Voici un bon tutoriel à ce sujet : opencv érode et se dilate.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top