Zur Ausgabe von Bildverarbeitungssoftware (Bildauswertung) mit numpy in python3, Inf und NaN sind im Mittelwert, in der Standardabweichung, im Maximum und im Minimum enthalten.
sample_code.py
import numpy as np
img = #Irgendwie eine Reihe von Bildern
print(np.max(img))
print(np.min(img))
print(np.mean(img))
print(np.std(img))
>inf
>-inf
>NaN
>NaN
So was Ich war ziemlich süchtig danach
Was ist inf oder NaN **? (Gekiuma Gaku) Als ich es nachgeschlagen habe, kamen viele Informationen heraus. inf Abkürzung für unendlich. Repräsentiert die Unendlichkeit. -inf ist negative Unendlichkeit, nicht wahr?
NaN
Gleitkommazahlen haben eine spezielle Zahl namens NaN (Not a Number), die anomale reelle Werte darstellt. Dies geschieht, wenn Sie unbestimmte Formen wie unendlich-unendlich, 0,0 / 0,0, Quadratwurzeln negativer Zahlen und logarithmische negative Zahlen ausführen, die nicht durch reelle Zahlen dargestellt werden können.
Aus NaN Story
Nach meinem Verständnis werden Werte (Zahlen) erkannt, die Sie bei der Berechnung nicht berücksichtigen oder ausschließen möchten.
sample_code.py
import numpy as np
img = #Irgendwie eine Reihe von Bildern
img[img == -np.inf] = np.nan
img[img == np.inf] = np.nan
Jetzt verschwindet inf aus dem Array. Lass uns weitermachen
sample_code.py
import numpy as np
img = #Irgendwie eine Reihe von Bildern
img[img == -np.inf] = np.nan
img[img == np.inf] = np.nan
Minimum,maximal= np.nanmax(img), np.nanmin(img)
durchschnittlich= np.nanmean(img)
Standardabweichung= np.nanstd(img)
#Es gibt auch Summen und Abweichungen
Referenz: https://note.nkmk.me/python-numpy-nansum/
Ich spreche darüber, welche Art von Verarbeitung dies durchgeführt wird. ** Bei der Berechnung von Maximum und Durchschnitt ** das NaN-Element ausschließen **. Bei der Durchschnittsberechnung ist sie beispielsweise nicht im Gesamtwert des Ganzen oder in der Anzahl der Elemente enthalten.
Ein Bild, das NaN aus der Sequenz löscht. Dann denken Sie vielleicht, dass Sie es löschen sollten, aber das ist bei der Bildverarbeitung nicht der Fall. Wenn Sie es löschen, entspricht es der vertikalen und horizontalen Größe des Bildes.
Wenn Sie vorerst durch 0 oder durch 0 teilen, werden vorerst inf und NaN eingeschlossen Ist es ein Gefühl, dass Software, die eine solche Verarbeitung durchführt, grundsätzlich die oben genannte Verarbeitung durchführen sollte?
Es war ziemlich schwer, das zu bemerken. Ich automatisiere oft die Bildverarbeitungsarbeit, die ich mit [imageJ] mache (https://imagej.nih.gov/ij/). Ich habe festgestellt, dass das Ausgabeergebnis der Software und das von imageJ verarbeitete Ergebnis unterschiedlich waren. Ich hatte das Gefühl, dass inf ausgeschlossen werden würde. Ist es in der Welt der Bildverarbeitung vernünftig?