Ich lerne, numpy zu verwenden, um Bilder zu manipulieren, aber die Farbinformation fehlte. Ich würde gerne herausfinden, warum das passiert.Farbinformationen fehlen in der Bildverarbeitung
Mein Ziel ist es, den Unterschied zwischen zwei Bildern zu extrahieren.
Null Schritt: Ladebibliothek
import numpy as np
from PIL import Image
Erster Schritt: Vectorize Bild mit RGBA Informationen
img_org = Image.open('lena.png').convert('RGBA')
arr_org = np.array(img_org)
img_mod = Image.open('lena_modified.png').convert('RGBA')
arr_mod = np.array(img_mod)
arr_diff= np.zeros_like(arr_mod)
Zweiter Schritt: die Differenz zwischen zwei Finden Sie heraus, Bilder nach Logikregel
for i in range(arr_mod.shape[0]) :
for j in range(arr_mod.shape[1]) :
if np.all(arr_mod[i, j]) == np.all(arr_org[i, j]):
arr_diff[i,j] = (0,0,0,0)
else :
arr_diff[i, j] = arr_mod[i, j]
Dritter Schritt: Schalten Sie das Bild RGBA Informationen zurück zum Bild
img_diff = Image.fromarray(arr_diff, 'RGBA')
img_diff.save('ans_two.png')
Ich hoffe, bunte Welly aus dem modifizierten Lena Bild zu bekommen. So
Allerdings habe ich keine Ahnung, es nur den Umriss/schwarzen Teil des Bildes erkennen. Ein möglicher Grund dafür?
Haftungsausschluss: Dies war ein homework von einem Kurs in NTU während 2017 Frühling angeboten. Ich folge diesem Kurs und lerne selbstständig. Du machst also keine Hausaufgaben für mich oder sonst jemanden. Vielen Dank!
Sie können die 'absdiff' Methode verwenden, um das zu tun. Übrigens, wenn Sie können, sollten Sie immer die 'erwartete' Lösung bereitstellen. "Differenz" kann eine Menge Dinge bedeuten, streng genommen wäre es der Unterschied zwischen den Pixelwerten oder den kombinierten Unterschieden. – user1767754
Danke für Ihren Kommentar. Ich habe einen Fehler gemacht, den Unterschied zwischen ihren Pixelwerten zu nehmen und lustige Ergebnisse zu erhalten. Die erwartete Lösung ist das Bild in der Mitte, wo unten rechts ein buntes Bild ist. Allerdings bin ich neugierig, warum ich nur die schwarze Kontur bekommen kann, während ich RGBA-Pixelwerte habe. – Ying