Image en binaire
Résolu2 réponses
-
Modérateur
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...
-
Modérateur
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/integrityPar 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
-
-
Modérateur@jordane45
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.
-
Modérateur@mamiemando
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.
-
Modérateur@jordane45
La discussion que tu pointes cherche effectivement à trouver comment ouvrir un gif avec OpenCV mais la solution qu'ils proposent ne fonctionne pas.
-

