Je souhaite enregistrer une image à l'aide de imwrite d'OpenCV '/ code> sans aucune extension. Je sais que le format image dans
cv2.imwrite code> est choisi en fonction du nom de fichier code> code>. Existe-t-il un moyen de spécifier le format de compression tout en appelant la fonction ou devrais-je renommer le fichier une fois créé?
cv2.imwrite(filename, img)
[Out]: /home/travis/miniconda/conda-bld/work/opencv-3.1.0/modules/imgcodecs/src/loadsave.cpp:459: error: (-2) could not find a writer for the specified extension in function imwrite_
3 Réponses :
Vous pouvez concaténer la chaîne de nom de fichier avec une chaîne qui spécifie uniquement l'extension tout en appelant la fonction. P>
Comme dans cv2.imwrite (nom de fichier + '.jpg', img) code>? L'image serait toujours enregistrée comme
FileName.jpg code> non? Et je devrais le renommer à nouveau?
Vous ne pouvez pas convertir une image d'une extension à une autre simplement en renommant le fichier, vous devez choisir de choisir l'extension lorsque vous appelez la fonction CV2.Imwrite ou en faisant ceci: IMG = CV.IMREAD ('1.PNG') CV. imwrite ('01 ..jpg ', img) comme exemple
Je ne veux pas convertir les extensions d'image / les formats de compression. Je veux avoir un nom de fichier image sans aucune extension et je souhaite spécifier le format de compression lors de l'écriture de l'image sur le disque.
Je pense qu'il n'est pas possible de spécifier la compression d'une image tout en le sauveant sans extension. Je recommanderais de l'enregistrer avec une extension puis d'utiliser espère que cela aide! P> P> os.rnerame () code>:
La motivation est que nous pouvons avec succès i> lire un fichier image sans extension, mais nous allons échoue i> dans l'enregistrement en utilisant le même nom. Lecture d'une image, le traiter et l'enregistrer en utilisant le même nom dans les autres répertoires est une exigence commune, à mon humble avis.
Je ne comprends pas votre motivation pour ce faire, mais si vous voulez écrire un JPEG sur le disque sans le Donc, si je charge une image comme ceci: P> .jpg code> extension ou un fichier PNG sans le
.png Code> Extension, vous pouvez simplement faire le codage sur un tampon de mémoire, puis écrivez-le sur le disque.
success, buffer = cv2.imencode(".jpg",im)
buffer.tofile('ExtensionlessFile')