web-dev-qa-db-fra.com

OpenCV Python: Normaliser l'image

Je suis nouveau sur OpenCV. Je souhaite effectuer certains prétraitements liés à la normalisation. Je veux normaliser mon image à une certaine taille. Le résultat du code suivant me donne une image noire. Quelqu'un peut-il m'indiquer exactement ce que je fais mal? L'image que je saisis est une image noir/blanc

import cv2 as cv
import numpy as np

img = cv.imread(path)
normalizedImg = np.zeros((800, 800))
cv.normalize(img,  normalizedImg, 0, 255, cv.NORM_MINMAX)
cv.imshow('dst_rt', self.normalizedImg)
cv.waitKey(0)
cv.destroyAllWindows()
8
kot09

comme on peut le voir sur: http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#cv2.normalize , il existe un → dst qui indique que le résultat de la fonction normalize est retourné en tant que paramètre de sortie. La fonction ne modifie pas le paramètre d'entrée dst sur place. (La ligne self. dans cv.imshow('dst_rt', self.normalizedImg) est une faute de frappe)

import cv2 as cv
import numpy as np
path = r"C:\Users\Public\Pictures\Sample Pictures\Hydrangeas.jpg"
img = cv.imread(path)
normalizedImg = np.zeros((800, 800))
normalizedImg = cv.normalize(img,  normalizedImg, 0, 255, cv.NORM_MINMAX)
cv.imshow('dst_rt', normalizedImg)
cv.waitKey(0)
cv.destroyAllWindows()
6
Ophir Carmi

Cela vous donne une image noire parce que vous utilisez probablement différentes tailles dans img et normalizedImg.

import cv2 as cv

img = cv.imread(path)
img = cv.resize(img, (800, 800))
cv.normalize(img, img, 0, 255, cv.NORM_MINMAX)

cv.imshow('dst_rt', img)
cv.waitKey(0)
cv.destroyAllWindows()
3
João Cartucho

Lorsque vous appelez cv.imshow(), vous utilisez self.normalizedImg au lieu de normalizedImg

Le soi. est utilisé pour identifier les membres du groupe et son utilisation dans le code que vous avez écrit n'est pas appropriée. Il ne devrait même pas fonctionner comme écrit. Cependant, je suppose que ce code a été extrait d'une définition de classe, mais vous devez être cohérent dans le nommage des variables et self.normalizedImg est différent de normalizedImg.

0
rocklegend