Image en binaire
Résolu/Fermémamiemando Messages postés 33088 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 30 avril 2024 - 6 mars 2023 à 23:20
- Opencv can't open/read file: check file path/integrity
- Codage binaire - Guide
- Image iso - Guide
- Acronis true image - Télécharger - Sauvegarde
- Faststone image viewer - Télécharger - Visionnage & Diaporama
- Google recherche par image - Guide
2 réponses
5 mars 2023 à 10:35
https://answers.opencv.org/question/226582/cv2imread-fail-to-open-gif-image/
Ps: à l'avenir, merci de poster ton code correctement sur le forum, en utilisant en l'icône prévue à cet effet lorsque tu rédiges ton message... Au lieu d'en mettre une image car on ne peut pas copier coller si besoin...
Modifié le 6 mars 2023 à 16:27
Bonjour,
Chez moi, la solution proposée par jordane45 #1 ne marche malheureusement pas (en tout cas avec cette image) :
import cv2
(img, ret) = cv2.imread(" Copy-of-GIFShell-Exploit-1-500-×-261-px-1.gif")
... car j'obtiens :
[ WARN:0@30.402] global ./modules/imgcodecs/src/loadsave.cpp (239) findDecoder imread_(' Copy
-of-GIFShell-Exploit-1-500-×-261-px-1.gif'): can't open/read file: check file path/integrity
Par contre, ce que tu peux faire, c'est charger ton image avec PIL, puis en extraire les données dans un np.array :
import numpy as np from PIL import Image img = Image.open("Copy-of-GIFShell-Exploit-1-500-×-261-px-1.gif") frame = np.asarray(img) print(frame.shape) # (261, 500)
Une fois que tu as tes donnée sous forme de np.array, tu peux appliquer dessus les fonctions d'OpenCV, dont cv2.threshold.
Exemple complet :
mport cv2 import numpy as np from PIL import Image # https://votiro.com/wp-content/uploads/2022/09/Copy-of-GIFShell-Exploit-1-500-%C3%97-261-px-1.gif img = Image.open("Copy-of-GIFShell-Exploit-1-500-×-261-px-1.gif") frame = np.asarray(img) print(frame) (ret, frame_bin) = cv2.threshold(frame, 20, 255, cv2.THRESH_BINARY) assert ret print(frame_bin) cv2.imshow("Binarisation", frame_bin) cv2.waitKey(0) cv2.destroyAllWindows()
Bonne chance
6 mars 2023 à 17:19
Je ne suis pas certain que tu aies regardé la réponse adaptée...
Le souci venant du fait que tu utilises un gif..
6 mars 2023 à 17:33
Bonjour jordane45,
Oui, j'ai regardé. Et le problème est que le lien que tu donnes ne marche pas avec le gif que j'ai donné en exemple (et je pense avec aucun gif). Ça dépend peut-être de la version d'OpenCV (j'utilise le paquet standard sur une Debian récente), donc si j'ai le problème, je ne pense pas être un cas isolé. La méthode que je préconise fonctionne quant à elle correctement.
6 mars 2023 à 19:18
Je vérifierai ce soir ou demain, mais il me semble que dans l'ensemble de la discussion le point est justement abordé concernant l'utilisation des gif...
En effet, de base, ce format n'est pas supporté pour faire ce que tu veux un code est donné dans cette discussion qui montre une éventuelle possibilité de contourner le souci.
6 mars 2023 à 23:20
La discussion que tu pointes cherche effectivement à trouver comment ouvrir un gif avec OpenCV mais la solution qu'ils proposent ne fonctionne pas.