Image en binaire

Résolu/Fermé
Soma1316 Messages postés 17 Date d'inscription vendredi 3 mars 2023 Statut Membre Dernière intervention 25 mai 2023 - 5 mars 2023 à 10:00
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 6 mars 2023 à 23:20

Bonjour,

Je veux convertir l'image en binaire, mais le code n'a pas fonctionné pour moi, alors quel est le problème avec ça ?

Code:

Erreur:
 

A voir également:

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
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...


0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
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

0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
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..

0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
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.

0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024
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.

0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
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.

0