Erreur :AttributeError: 'NoneType' object has no attribute '
Résolu
rose2022
Messages postés
20
Statut
Membre
-
rose2022 Messages postés 20 Statut Membre -
rose2022 Messages postés 20 Statut Membre -
Bonsoir
j'ai exécuté le code d'une m'étrique de qualité d"image psnr
je comprends pas l'erreur ,a la ligne 13 j'ai besoin d'aide svp
erreur : ligne13 height, width, channel = s.shape
le code :
import math
import cv2
import csv
import os
def read_bmp(image_name):
return cv2.imread(image_name+'.bmp')
def calculate_psnr(n):
s = read_bmp('source/s'+n)
r = read_bmp('recovery/rs'+n)
height, width, channel = s.shape
size = height*width
sb,sg,sr = cv2.split(s)
rb,rg,rr = cv2.split(r)
mseb = ((sb-rb)**2).sum()
mseg = ((sg-rg)**2).sum()
mser = ((sr-rr)**2).sum()
MSE = (mseb+mseg+mser)/(3*size)
psnr = 10*math.log10(255**2/MSE)
return round(psnr,2)
def write_csv(n,data):
with open('PSNR-result/'+n+'.csv', 'w', newline='') as myfile:
wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
wr.writerow(data)
for i in range(6):
print("Creating CSV of PSNR-result",i+1,"...",sep="")
write_csv(str(i+1),[calculate_psnr(str(i+1))])
os.system("pause")
cordialement
Windows / Chrome 106.0.5249.168
A voir également:
- Erreur :AttributeError: 'NoneType' object has no attribute '
- Erreur 0x80070570 ✓ - Forum Windows 10
- Erreur s3 bbox - Forum Bbox Bouygues
- Erreur 4101 - Forum Carte graphique
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur France TV : impossible de lire les vidéos en replay - Forum Lecteurs et supports vidéo
4 réponses
Moi non plus je ne comprend pas ...
Tu passes en paramètre à ta fonction PSNR les variables s et r et tu les redéfinis dans la fonction.
Ces objets ne semblent pas exister au moment de l'appel.
bonjour
j'ai corrigé le code pour l'importation des images mais j'ai encore un message d'erreur
value = PSNR(s, r)
NameError: name 's' is not defined
pourtant le s est definie comme image original
voici le code :
def PSNR(s, r):
s = cv2.imread("original_image.png")
r = cv2.imread("compressed_image.png")
height, width, channel = s.shape
size = height*width
sb,sg,sr = cv2.split(s)
rb,rg,rr = cv2.split(r)
mseb = ((sb-rb)**2).sum()
mseg = ((sg-rg)**2).sum()
mser = ((sr-rr)**2).sum()
MSE = (mseb+mseg+mser)/(3*size)
psnr = 10*math.log10(255**2/MSE)
return round(psnr,2)
def main():
value = PSNR(s, r)
# Affichage du psnr
print(f"PSNR value is {value} dB")
if __name__ == "__main__":
main()
que dois je comprendre ? un coup de main svp
merci
cordialement
bonsoir
merci bien j'ai compris qu'il faut enlever les paramètres
good night