imwrite et l'unicode

Le problème exposé dans ce sujet a été résolu.

Bonjour,

J'utilise OpenCV avec Python 2 - le module cv2 - et je me heurte à un problème d'encodage lors de l'appel à imwrite. En effet, il me dit UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 44: ordinal not in range(128) lorsque j'utilise un caractère accentué - ou plutôt hors de la table ASCII - dans le premier argument de la fonction.

Pourtant, j'ai bien quelque chose du genre :

1
2
3
path = "é.png"
path = unicode(path)
cv2.imwrite(path, mat)

Puis-je résoudre ce facheux souci ?

Merci !

+0 -0

Malheureusement, ça ne fonctionne pas. Je pense que ça doit être la fonction d'OpenCV qui convertit l'argument en str

OpenCV requière Numpy, donc pas de Python 3.

Edit: d'ailleurs, ça fait pareil avec imread.

+0 -0

OpenCV requière Numpy, donc pas de Python 3.

Numpy est compatible avec Python3 depuis des lustres. OpenCv le sera dans le version à venir.

En attendant, pourquoi tu met la ligne path = unicode(path). Chez moi ça marche très bien sans. C'est elle qui génère le prob.

En effet… Merci !

Il me semblait pourtant avoir ajouté cette ligne à cause de l'erreur du premier message, sans conséquence. Je perds la boule.

Edit: Ah oui c'est ça ! C'est parce que path était la concaténation d'une chaîne str et d'une unicode.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte