web-dev-qa-db-de.com

OpenCV Python: Bild normalisieren

Ich bin neu bei OpenCV. Ich möchte einige Vorverarbeitungen im Zusammenhang mit der Normalisierung durchführen. Ich möchte mein Bild auf eine bestimmte Größe normalisieren. Das Ergebnis des folgenden Codes ergibt ein schwarzes Bild. Kann mir jemand sagen, was genau ich falsch mache? Das von mir eingegebene Bild ist ein Schwarzweißbild

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

wie man unter: http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#cv2.normalize sehen kann, gibt es einen → dst, der besagt, dass das Ergebnis der normalize-Funktion ist als Ausgabeparameter zurückgegeben. Die Funktion ändert den Eingabeparameter dst nicht direkt. (Die self. in cv.imshow('dst_rt', self.normalizedImg)-Zeile ist ein Tippfehler)

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

Dadurch erhalten Sie ein schwarzes Bild, da Sie img und normalizedImg wahrscheinlich unterschiedliche Größen verwenden.

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

Wenn Sie cv.imshow() aufrufen, verwenden Sie self.normalizedImg anstelle von normalizedImg

Das Ich. wird verwendet, um Klassenmitglieder zu identifizieren, und ihre Verwendung in dem von Ihnen geschriebenen Code ist nicht angemessen. Es sollte nicht einmal so laufen wie geschrieben. Ich gehe jedoch davon aus, dass dieser Code aus einer Klassendefinition extrahiert wurde, aber Sie müssen konsistent bei der Benennung von Variablen sein, und self.normalizedImg unterscheidet sich von normalizedImg.

0
rocklegend