Détection de OpenCV boule – couleur en fonction des

Il s’agit de ma première intervention sur la vision par ordinateur et le domaine de traitement d’image, donc je vais commencer par un exemple simple. Dans cet exemple, je vais parler de boule détection et le suivi à l’aide de simple couleur en fonction. En particulier, être détecterait la couleur rouge. Tout d’abord, je vais vous montrer une démonstration intéressante. Alors je vais vous expliquer comment nous le faisons qui contient le logiciel de préparation du matériel, mise en œuvre et l’explication,

Démo


Ou
http://www.Dailymotion.com/video/x4t13gu

Préparation du matériel et des logiciels
Mise en œuvre et l’explication

Capturer la vidéo de webcam :

    Brixham cap(0) ;

Capturez une image temporaire de l’appareil photo :

    Mat imgTmp ;
    Cap.Read(imgOriginal) ;

Convertir l’image capturée de BGR-HSV :

	cvtColor (imgOriginal, imgHSV, COLOR_BGR2HSV) ;

Seuil de l’image :

Mat imgThresholded ;
inRange (imgHSV, Scalar (iLowH, iLowS, iLowV), scalaire (iHighH, iHighS, iHighV), imgThresholded) ;

Ouverture morphologique (supprime les petits objets de premier plan) :

	éroder (imgThresholded, imgThresholded, getStructuringElement (CV_SHAPE_ELLIPSE, taille (3, 3))) ;
	dilater (imgThresholded, imgThresholded, getStructuringElement (CV_SHAPE_ELLIPSE, taille (3, 3))) ;

Fermeture morphologique (supprime les petits trous des éléments originaux)

	dilater (imgThresholded, imgThresholded, getStructuringElement (CV_SHAPE_ELLIPSE, taille (3, 3))) ;
	éroder (imgThresholded, imgThresholded, getStructuringElement (CV_SHAPE_ELLIPSE, taille (3, 3))) ;

Calculer les moments de l’image seuillée

	Des moments oMoments = moments(imgThresholded) ;

	dM01 double = oMoments.m01 ;
	dM10 double = oMoments.m10 ;
	double dArea = oMoments.m00 ;

Si la zone > = 5000, je considère que l’il n’y a aucun objet dans l’image et c’est à cause du bruit, la zone n’est pas nulle :

	Si (dArea > 5000)
	{
	    Calculer la position de la balle
	    int posX = dM10 / dArea ;
	    Bouquet d’int = dM01 / dArea ;

	    Si (iLastX > = 0 && iLastY > = 0 && posX > = 0 && bouquet > 0)
	    {
		Tracer une ligne rouge du point précédent au point actuel
		ligne (imgLines, Point (posX, posY), Point (iLastX, iLastY), Scalar(0,0,255), 2) ;
	    }

	    iLastX = posX ;
	    iLastY = bouquet ;
	}

Compilez et exécutez

     g ++ -o ball_detection ball_detection.cpp-L/home/user_name/opencv-2.4.11/build/install/lib-lopencv_core-lopencv_imgproc-lopencv_highgui
     . / ball_detection

Vous pouvez aussi jeter un oeil sur nos Github
git clone https://github.com/Booppey/ball_detection.git

Application vidéo ce module pour le suivi de boule rouge perroquet Jumping Sumo

Notre Youtube Chanel

Pour cette application, nous avons utilisé l’algorithme, mais changé l’architecture. Et nous utilisons le client – architecture serveur. En particulier, la partie de traitement de l’image s’exécute côté serveur et Téléphone android + le robot donnent du côté client.

Conclusion

OpenCV ball détection ou OpenCV suivi de balle sont un sujet simple dans le domaine de vision image traitement et ordinateur. Mais je pense qu’avec cet exemple, vous pourriez facilement comprendre comment nous allons faire un projet pour la détection d’objet et/ou de suivi d’objets.
Si vous avez tout commentaire, question, suggestion, veuillez laisser ici un commentaire. Je vous répondrai dès que possible.

Share This:

Leave a Reply

Your email address will not be published. Required fields are marked *