Prozentuale Anzeige der RGB Werte eines Bildes
Verfasst: Donnerstag 7. Januar 2021, 20:18
Hallo zusammen,
zurzeit schreibe ich an einer BA in der ich unteranderem einige Bilder analysieren möchte. Diese Analyse soll mir hauptsächlich den prozentualen Farbanteil eines Bildes liefern, um später diese Bilder besser gruppieren zu können. Der Code selbst ist für die schriftliche Ausarbeitung der BA nicht von Interesse, sondern dient zur Archivierung und Organisierung meiner Daten. Da ich aus Datenschutzgründen keine Bilder hochladen darf, kann hier ein beliebiges Bild verwendet werden. Der Code sollte jedoch folgende Punkte beinhalten, welcher mir bei der Sortierung helfen soll:
1.) Wenn möglich sollte dieser in Jupyter 6.0.3 geschrieben werden
Mein Ansatz bisher:
bild = plt.imread("image.png") # Bild einlesen
plt.imshow(bild)
bild_rot = bildl[:,:,0] # Die einzelnen Spalten (RGB) als arrays extrahieren
bild_gruen = bild[:,:,1]
bild_blau = bild[:,:,2]
print(bild_rot) # arrays ausgeben
print(bild_gruen)
print(bild_blau)
(das array kann variieren, es geht mir nur um den codeablauf)
[[0.06666667 0.09803922 0.09411765 ... 0.47058824 0.49019608 0.49019608]
[0.08235294 0.1254902 0.10588235 ... 0.4862745 0.5058824 0.49803922]
[0.03921569 0.07450981 0.09019608 ... 0.49411765 0.5058824 0.49803922]
...
[0.7058824 0.7058824 0.7058824 ... 0.5019608 0.5058824 0.50980395]
[0.7019608 0.69803923 0.69803923 ... 0.50980395 0.5058824 0.5019608 ]
[0.69803923 0.6901961 0.6901961 ... 0.5058824 0.49803922 0.49411765]]
[[0.3647059 0.36078432 0.35686275 ... 0.5176471 0.5176471 0.5254902 ]
[0.3647059 0.3529412 0.3529412 ... 0.52156866 0.52156866 0.53333336]
[0.36862746 0.3529412 0.36078432 ... 0.5294118 0.5294118 0.5372549 ]
...
[0.7490196 0.7490196 0.7490196 ... 0.5568628 0.5647059 0.5686275 ]
[0.7411765 0.7411765 0.7411765 ... 0.54901963 0.5568628 0.5647059 ]
[0.7372549 0.7372549 0.7372549 ... 0.5411765 0.5568628 0.56078434]]
[[0.68235296 0.68235296 0.6862745 ... 0.6784314 0.6862745 0.6862745 ]
[0.6784314 0.6901961 0.6901961 ... 0.6862745 0.6862745 0.6901961 ]
[0.68235296 0.69411767 0.6862745 ... 0.6901961 0.6901961 0.69411767]
...
[0.83137256 0.83137256 0.827451 ... 0.69411767 0.69411767 0.6901961 ]
[0.8235294 0.8235294 0.8235294 ... 0.6901961 0.6862745 0.6862745 ]
[0.81960785 0.8235294 0.81960785 ... 0.69411767 0.6862745 0.6862745 ]]
# hier scheitere ich an der Weiterverarbeitung der arrays
2.) Wenn möglich ein Durchschnitt der drei RGB Farbanteile
3.) Wenn ein beliebiger Farbanteil eines Pixels (z.B blau) größer als 1.1 dann wird eine Nachricht "Kategorie: blau_intensiv" angezeigt und erhält den Wert 1 (True)
3.1.) Wenn ein beliebiger Farbanteil eines Pixels (z.B blau) kleiner als 1.1 dann wird eine Nachricht "Kategorie: blau_arm" angezeigt und erhält den Wert 0 (False)
4.) Der Blaugrad zwischen "blau_intensiv" und "blau_arm" sollte mit drin sein
Idee: Zwei Variablen definieren und ins Verhältnis setzen?
Mfg
Xalagy
zurzeit schreibe ich an einer BA in der ich unteranderem einige Bilder analysieren möchte. Diese Analyse soll mir hauptsächlich den prozentualen Farbanteil eines Bildes liefern, um später diese Bilder besser gruppieren zu können. Der Code selbst ist für die schriftliche Ausarbeitung der BA nicht von Interesse, sondern dient zur Archivierung und Organisierung meiner Daten. Da ich aus Datenschutzgründen keine Bilder hochladen darf, kann hier ein beliebiges Bild verwendet werden. Der Code sollte jedoch folgende Punkte beinhalten, welcher mir bei der Sortierung helfen soll:
1.) Wenn möglich sollte dieser in Jupyter 6.0.3 geschrieben werden
Mein Ansatz bisher:
bild = plt.imread("image.png") # Bild einlesen
plt.imshow(bild)
bild_rot = bildl[:,:,0] # Die einzelnen Spalten (RGB) als arrays extrahieren
bild_gruen = bild[:,:,1]
bild_blau = bild[:,:,2]
print(bild_rot) # arrays ausgeben
print(bild_gruen)
print(bild_blau)
(das array kann variieren, es geht mir nur um den codeablauf)
[[0.06666667 0.09803922 0.09411765 ... 0.47058824 0.49019608 0.49019608]
[0.08235294 0.1254902 0.10588235 ... 0.4862745 0.5058824 0.49803922]
[0.03921569 0.07450981 0.09019608 ... 0.49411765 0.5058824 0.49803922]
...
[0.7058824 0.7058824 0.7058824 ... 0.5019608 0.5058824 0.50980395]
[0.7019608 0.69803923 0.69803923 ... 0.50980395 0.5058824 0.5019608 ]
[0.69803923 0.6901961 0.6901961 ... 0.5058824 0.49803922 0.49411765]]
[[0.3647059 0.36078432 0.35686275 ... 0.5176471 0.5176471 0.5254902 ]
[0.3647059 0.3529412 0.3529412 ... 0.52156866 0.52156866 0.53333336]
[0.36862746 0.3529412 0.36078432 ... 0.5294118 0.5294118 0.5372549 ]
...
[0.7490196 0.7490196 0.7490196 ... 0.5568628 0.5647059 0.5686275 ]
[0.7411765 0.7411765 0.7411765 ... 0.54901963 0.5568628 0.5647059 ]
[0.7372549 0.7372549 0.7372549 ... 0.5411765 0.5568628 0.56078434]]
[[0.68235296 0.68235296 0.6862745 ... 0.6784314 0.6862745 0.6862745 ]
[0.6784314 0.6901961 0.6901961 ... 0.6862745 0.6862745 0.6901961 ]
[0.68235296 0.69411767 0.6862745 ... 0.6901961 0.6901961 0.69411767]
...
[0.83137256 0.83137256 0.827451 ... 0.69411767 0.69411767 0.6901961 ]
[0.8235294 0.8235294 0.8235294 ... 0.6901961 0.6862745 0.6862745 ]
[0.81960785 0.8235294 0.81960785 ... 0.69411767 0.6862745 0.6862745 ]]
# hier scheitere ich an der Weiterverarbeitung der arrays
2.) Wenn möglich ein Durchschnitt der drei RGB Farbanteile
3.) Wenn ein beliebiger Farbanteil eines Pixels (z.B blau) größer als 1.1 dann wird eine Nachricht "Kategorie: blau_intensiv" angezeigt und erhält den Wert 1 (True)
3.1.) Wenn ein beliebiger Farbanteil eines Pixels (z.B blau) kleiner als 1.1 dann wird eine Nachricht "Kategorie: blau_arm" angezeigt und erhält den Wert 0 (False)
4.) Der Blaugrad zwischen "blau_intensiv" und "blau_arm" sollte mit drin sein
Idee: Zwei Variablen definieren und ins Verhältnis setzen?
Mfg
Xalagy