Archives dans mai 2021

Lecture et sauvegarde des images usb camera dans un repertoire

Lecture  et sauvegarde des images usb camera  dans un repertoire

Comment sauvegarder les images dans un répertoire spécifique?

Dans ce article, on va apprendre rapidement comment on peut enregistrer  les images acquises à partir des USB caméras dans un répertoire spécifique et avec un intervalle de temps d’acquisition précis en utilisant Opencv , time et OS.

 

On peut utiliser le système sur un raspberry pi pour faire des images ou superviser quelque chose soit avec un ordinateur.

Comme nous allons utiliser python, on aura besoin d’importer quelques librairies avant d’écrire notre code pour la capture et le sauvegarde des images.

Quelles libraires  importées?

On va importer trois librairies  qui sont:

[pastacode lang=”python” manual=”import%20cv2%0Aimport%20os.path%20%20%23%20ou%20import%20os%0Aimport%20time%0A” message=”Librairies à importer” highlight=”” provider=”manual”/]

La librairie cv2 va nous aider à lire notre caméra et à sauvegarder  les images , os.path  va nous permettre d’avoir accès au système surtout au dossiers ou fichiers ou répertoire et enfin  time va nous permettre de gérer le temps et de nommer nos images avec le temps ou la date.

 

Après avoir importé nos librairies, on va maintenant initialiser la caméra si c’est une seule caméra ou les caméras.

On l’initialise avec la commande suivante:

[pastacode lang=”python” manual=”camera1%20%3D%20cv2.VideoCapture(0)” message=”Initialisation de la caméra” highlight=”” provider=”manual”/]

Ensuite on vérifie si la caméra est bien initialisée si oui on la lit avec la commande:

[pastacode lang=”python” manual=”while%20True%3A%0A%20%20%20%20ret1%2C%20frame1%20%3D%20camera1.read()” message=”Vérification et lecture de la caméra” highlight=”” provider=”manual”/]

On  déclare le répertoire dans lequel on veut enregistrer les images et l’intervalle de temps au bout duquel on veut capturer une image avec les commandes suivantes:

[pastacode lang=”python” manual=”%23%20declaration%20du%20r%C3%A9pertoire%20%0Apath1%20%3D%22.%2FBureau%2FImagetest%2FCamera1%22%0A%0A%23%20d%C3%A9claration%20du%20timelapse%0Atime.sleep(60)” message=”Déclaration du répertoire et du timelapse” highlight=”” provider=”manual”/]

La ligne path1 =“./Bureau/Imagetest/Camera1” représente le  chemin du répertoire et la ligne sleep(60) représente le timelapse , la durée pour acquérir une image.

Enfin si la caméra est bien lue,on procède à la visualisation et sauvegarde des images avec les commandes suivantes:

[pastacode lang=”python” manual=”%20if%20ret1%3A%0A%20%20%20%20%20%20%20%20cv2.imshow(%22camera1%22%2C%20frame1)%0A%20%20%20%20%20%20%20%20cv2.imwrite(os.path.join(path1%2C%20%22image1_%22%20%2B%20time.strftime(%22%25d-%25m-%25Y-%25H-%25M-%25S_%22)%20%20%2B%20%22.tif%22)%2Cframe1)” message=”Verification de lecture de la caméra et sauvegarde des images” highlight=”” provider=”manual”/]

Important: Quand on déclare un dossier sous linux, il faut mettre un point avant le chemin du répertoire mais sur windows et raspberry pi c’est raspbian on n’a pas besoin du point avant le chemin du répertoire.

Voici le code complet pour lancer la caméra et sauvegarder les images dans un répertoire spécifique en utilisant un python code python (opencv pour capture).

[pastacode lang=”python” manual=”import%20cv2%0Aimport%20time%2Cos.path%0Afrom%20time%20import%20sleep%0Aimport%20os%0A%23%20initialiser%20les%20cam%C3%A9ras%0Acamera1%20%3D%20cv2.VideoCapture(0)%0A%0Acamera2%20%3D%20cv2.VideoCapture(2)%0A%0Awhile%20True%3A%0A%20%20%20%20ret1%2C%20frame1%20%3D%20camera1.read()%0A%20%20%20%20ret2%2C%20frame2%20%3D%20camera2.read()%0A%20%20%20%20%0A%20%20%20%20%23%20D%C3%A9claration%20du%20chemin%20des%20r%C3%A9pertoires%0A%20%20%20%20path1%20%3D%22.%2FBureau%2FImagetest%2FCamera1%22%0A%20%20%20%20path2%20%3D%22.%2FBureau%2FImagetest%2FCamera2%22%0A%0A%20%20%20%23%20D%C3%A9claration%20du%20timelapse%0A%20%20%20sleep(60)%0A%0A%20%20%20if%20ret1%3A%0A%20%20%20%20%20%20%20%23%20cv2.imshow(%22camera1%22%2C%20frame1)%0A%20%20%20%20%20%20%20%20cv2.imwrite(os.path.join(path1%2C%20%22image1_%22%20%2B%20time.strftime(%22%25d-%25m-%25Y-%25H-%25M-%25S_%22)%20%20%2B%20%22.tif%22)%2Cframe1)%0A%20%20%20%20%20%20%20%0A%20%20%20%20if%20ret2%3A%0A%20%20%20%20%20%20%20%23%20cv2.imshow(%22camera2%22%2C%20frame2)%0A%20%20%20%20%20%20%20%20cv2.imwrite(os.path.join(path2%2C%20%22image2_%22%20%2B%20time.strftime(%22%25d-%25m-%25Y-%25H-%25M-%25S_%22)%20%20%2B%20%22.tif%22)%2Cframe2)%0A%20%20%20%20%20%20%20%20camera2.set(cv2.CAP_PROP_FRAME_WIDTH%2C%201920)%0A%20%20%20%20%20%20%20%20camera2.set(cv2.CAP_PROP_FRAME_HEIGHT%2C%201080)%0A%20%20%20%0A%20%20%20%20%20if%20cv2.waitKey(1)%20%26%200xff%20%3D%3Dord(‘a’)%3A%0A%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20break%0A%0Acamera1.release()%0Acamera2.release()%0Acv2.destroyAllWindows()%0A%0A” message=”Code complet” highlight=”” provider=”manual”/]

Ce code permet de lancer deux caméras directement soit sur un raspberry pi ou un pc (linux , windows ou macox) en banchant les deux caméras à deux ports USB, enregistrer les images acquises de chaque caméra dans un répertoire différent suivant le même intervalle de temps ici 60 secondes soit 1 minuit pour chaque image.

J’espère que ce article vous a aidé.

A lire aussi (Installer un raspberry pi)