[PYTHON] Finden Sie den Durchschnitt / die Standardabweichung der Helligkeitswerte im Bild

Zweck

Es ist ein Memorandum bei der Berechnung des Histogramms des Helligkeitswerts im Bild und des Durchschnitts / der Streuung.

Code

Finden Sie das Histogramm, den Mittelwert und die Standardabweichung des Bildes unten lena.png: Testbild black.png: Gleichmäßig schwarzes Bild

test.py


import numpy as np
import scipy.stats as sstats
import cv2

def print_stat(fname):

    img_name = fname
    img = cv2.imread(fname,1)
    # Grayscale
    img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
    #Eindimensionales Array
    img = np.array(img).flatten()
    # img = img[img!=255]

    mean = img.mean()             #Durchschnittswert
    std = np.std(img)             #Standardabweichung
    median = np.median(img)       #Median
    mode = sstats.mode(img)[0][0] #Häufigster Wert

    print("---", img_name)
    print("mean    : ", mean)
    print("stddev  : ", std)
    print("median  : ", median)
    print("mode    : ", mode)

print_stat('lena.png')
print_stat('black.png')

Ergebnis

$ python test.py
--- lena.png
mean    :  106.4122314453125
stddev  :  45.733566693923045
median  :  107.0
mode    :  44
--- black.png
mean    :  0.0
stddev  :  0.0
median  :  0.0
mode    :  0

Andere

Wenn Sie die Verwendung über die Befehlszeile etwas vereinfachen möchten,

test.py


import sys
import numpy as np
import scipy.stats as sstats
import cv2

args = sys.argv

def print_stat(fname):

    img_name = fname
    img = cv2.imread(fname,1)
    # Grayscale
    img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
    #Eindimensionales Array
    img = np.array(img).flatten()
    # img = img[img!=255]

    mean = img.mean()
    std = np.std(img)
    median = np.median(img)
    mode = sstats.mode(img)[0][0]

    print("name=" + img_name + ",")
    print("mean=" + str(mean) + ",")
    print("stddev=" + str(std) + ",")
    print("median=" + str(median) + ",")
    print("mode=" + str(mode) + ",")

arg1=args[1]
print_stat(arg1)
$ RET=$(python test.py lena.png)
$ echo $RET
name=lena.png , mean=106.4122314453125 , stddev=45.733566693923045 , median=107.0 , mode=44 ,
$ echo $RET | sed -e 's/.*name=//' |  cut -d',' -f 1 | awk '{printf "%-20s\n",$1}'
lena.png
$ echo $RET | sed -e 's/.*mean=//' |  cut -d',' -f 1 | awk '{printf "%-20s\n",$1}'
106.4122314453125

Referenz

Lernen Sie die Bildverarbeitung mit Python3 & OpenCV [2] ~ Grundlegendes Experiment zum Histogramm zur Informationsvisualisierung

Recommended Posts

Finden Sie den Durchschnitt / die Standardabweichung der Helligkeitswerte im Bild
Finden Sie den Durchschnitt / die Standardabweichung der Helligkeitswerte im Bild
Zeigen Sie ein Histogramm der Bildhelligkeitswerte in Python an
Erben Sie die Standardbibliothek, um den Durchschnittswert der Warteschlange zu ermitteln
Finden Sie die Anzahl der Tage in einem Monat
Finden Sie den Bruchteil des in Python eingegebenen Werts heraus
Finden Sie die Lösung der Gleichung n-ter Ordnung mit Python
Dispersion mit Pythons Standardbibliothek und Kissen Ermitteln Sie die RGB-Standardabweichung des Bildes und stellen Sie fest, ob es monochromatisch ist
Berechnung der Standardabweichung und des Korrelationskoeffizienten in Python
Berechnen Sie die Summe der eindeutigen Werte durch Pandas-Kreuztabellen
Ich habe versucht, die Entropie des Bildes mit Python zu finden
So finden Sie die optimale Anzahl von Clustern für k-means
Maya | Ermitteln Sie die Anzahl der Polygone im ausgewählten Objekt
Finden Sie die scheinbare Breite einer Zeichenfolge in Python heraus
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
Finde Fehler in Python
Python - Ermitteln Sie die Anzahl der Gruppen im regulären Ausdruck
Finden Sie die Eigenwerte einer reellen symmetrischen Matrix in Python
[Maschinelles Lernen] Verstehen Sie aus der Mathematik, dass Standardisierung zu einem Durchschnitt von 0 und einer Standardabweichung von 1 führt.
Ich habe die Berechnungszeit des in Python geschriebenen gleitenden Durchschnitts verglichen
Lesen Sie die Standardausgabe eines Unterprozesses zeilenweise in Python
[Python] Ermittelt den Rang der Werte in der Liste in aufsteigender / absteigender Reihenfolge
Eingabe / Ausgabe von Werten aus der Standardeingabe in der Wettbewerbsprogrammierung usw.
Finden Sie die Definition des Wertes von errno
Erkennen Sie Mosaikpunkte im Bild
Die Geschichte der Teilnahme an AtCoder
Über die durchschnittliche Option von sklearn.metrics.f1_score
Ändern Sie die Sättigung und Helligkeit von Farbspezifikationen wie # ff000 in Python 2.5
Suchen Sie den Bereich des Summensatzes überlappender Rechtecke
[Verständnis in 3 Minuten] Der Beginn von Linux
Überprüfen Sie das Verhalten des Zerstörers in Python
Die Geschichte eines Fehlers in PyOCR
Holen Sie sich die besten n-ten Werte in Pandas
Fügen Sie aufeinanderfolgende Werte in der Liste zusammen
Visualisieren Sie den Grenzwert des mehrschichtigen Perzeptrons
Implementieren Sie einen Teil des Prozesses in C ++
Das Ergebnis der Installation von Python auf Anaconda
Migemo-Version des Befehls: find,: mfind
Grundlagen zum Ausführen von NoxPlayer in Python
Tipps: Vergleich der Größe von drei Werten
Auf der Suche nach dem schnellsten FizzBuzz in Python
Suchen Sie es in der Warteschlange und bearbeiten Sie es
Finden Sie den Koeffizienten des Polypolys mit dem kleinsten Quadrat
Extrahieren Sie die Farbe des Objekts im Bild mit Mask R-CNN und K-Means Clustering
Suchen Sie den Index der Elemente, die den Bedingungen im Pandas-Datenrahmen / der Pandas-Serie entsprechen
Analysieren Sie den Nutzungsstatus der Kontaktbestätigungsanwendung (COCOA), die in "Image" / Tesseract veröffentlicht ist
So ermitteln Sie den Koeffizienten der ungefähren Kurve, die in Python durch die Scheitelpunkte verläuft