Okay Leute, ich bleibe stecken und versuche ein Histogramm zu erstellen, das für zwei Bilder passt; ein Vorlagenbild und ein Zielbild (Ziel bedeutet das Bild, an das ich das Vorlagenbild anpassen möchte). Anstatt das passende Bild anzuzeigen, erhalte ich ein leeres Bild. Ich habe das Gefühl, dass ich erschöpft bin, weshalb ich nach SO gekommen bin. Kann mich jemand in die richtige Richtung führen?Zuordnung eines Quellbilds zu einem Zielbild in Python
Jede Hilfe in die richtige Richtung wäre willkommen.
def matching(template, target, numberOfBins=256):
templateHist, bins1 = np.histogram(template.flatten(), numberOfBins, density = False)
targetHist, bins2 = np.histogram(target.flatten(), numberOfBins, density = False)
cdfTemplate = templateHist.cumsum() #Cumulative distributed function
cdfTemplate = (255 * cdfTemplate/cdfTemplate[-1]) #normalize
cdfTarget = targetHist.cumsum()
cdfTarget = (255 * cdfTarget/cdfTarget[-1]).astype(np.float64)
im2 = np.interp(template.flatten(), cdfTemplate, bins1[:-1])
im3 = np.interp(im2, cdfTarget, bins2[:-1])
result = im3.reshape((template.shape))
return result
Siehe hier: http://stackoverflow.com/q/32655686/1461210 –
es bedeutet, dass cdfTemplate [-1] 0 – Li357
Die Fehlermeldung zurückgibt Ihnen sagt, dass 'cdfTemplate [-1]' ist gleich 0, was dazu führt, dass alle Elemente in 'cdfTemplate' zu NaNs werden. Dies bedeutet, dass die Summe von "templateHist" ebenfalls 0 sein muss. Es ist schwieriger zu erklären, warum dies der Fall sein sollte, da es aus Histogramm-Bin-Zählungen besteht und die automatische Auswahl von Histogramm-Bin-Kanten sicherstellen sollte, dass mindestens eine Bin enthält eine Zählung ungleich Null. Was sind "Vorlage" und "Ziel"? Ich vermute, dass sie maskierte Arrays sind? –