J'apprends OpenCV et Python. J'ai capturé des images de ma webcam et les ai enregistrées. Mais ils sont enregistrés par défaut dans le dossier local. Je veux les enregistrer dans un autre dossier à partir du chemin direct. Comment je le répare?
La solution fournie par ebeneditos fonctionne parfaitement.
Mais si vous avez cv2.imwrite()
dans plusieurs sections d'un fragment de code volumineux et que vous souhaitez modifier le chemin où les images sont enregistrées, vous devrez le modifier à chaque occurrence de cv2.imwrite()
. individuellement.
Comme Soltius l'a dit, voici une meilleure solution. Déclarez un chemin et transmettez-le sous forme de chaîne à cv2.imwrite()
import cv2
import os
img = cv2.imread('1.jpg', 1)
path = 'D:/OpenCV/Scripts/Images'
cv2.imwrite(os.path.join(path , 'waka.jpg'), img)
cv2.waitKey(0)
Maintenant, si vous voulez modifier le chemin, il vous suffit de changer la variable path
.
Édité à partir d'une solution fournie par Kallz
Vous pouvez le faire avec la fonction OpenCV imwrite
:
import cv2
cv2.imwrite('Path/Image.jpg', image_name)
Merci tout le monde. Vos manières sont parfaites. Je voudrais partager une autre manière que j'ai utilisée pour résoudre le problème. J'ai utilisé la fonction os.chdir(path)
pour changer le répertoire local en chemin. Après quoi j'ai sauvegardé l'image normalement.
Réponse donnée par Jeru Luke ne fonctionne que sur les systèmes Windows. Si nous essayons sur un autre système d'exploitation (Ubuntu), il s'exécutera sans erreur, mais l'image sera enregistrée sur l'emplacement ou le chemin cible.
import cv2
img = cv2.imread('1.jpg', 1)
path = '/tmp'
cv2.imwrite(str(path) + 'waka.jpg',img)
cv2.waitKey(0)
Je cours au-dessus du code mais l'image n'enregistre pas l'image sur le chemin cible. Ensuite, j’ai trouvé que la manière d’ajouter un chemin est fausse pour l’usage général que nous utilisons OS module pour ajouter le chemin.
Exemple:
import os
final_path = os.path.join(path_1,path_2,path_3......)
import cv2
import os
img = cv2.imread('1.jpg', 1)
path = 'D:/OpenCV/Scripts/Images'
cv2.imwrite(os.path.join(path , 'waka.jpg'),img)
cv2.waitKey(0)
ce code fonctionne bien sous Windows et Ubuntu :)