np Arrays sind unveränderlich - "Zuweisungsziel ist schreibgeschützt"
FD ** - Ich bin sowohl ein Python-Newb als auch ein Stack-Overflow-Newb, wie Sie sehen können. Ich habe die Frage aufgrund von Kommentaren bearbeitet.
Mein Ziel ist es, eine Reihe von PNG-Dateien zu lesen, Bilder mit Image.open ('Dateiname') zu erstellen und sie in einfache 2D-Arrays mit nur 1s und 0s zu konvertieren. Das PNG hat das Format RGBA mit meist nur 255 und 0 als Werten. In den Bildern sind die Ränder häufig Grauwerte, die ich im 2D-Array vermeiden möchte.
Ich habe das 2D-Array aus dem Bild mit np.asarray (Image) erstellt und dabei nur den Kanal 'Red' abgerufen. In jedem 2d-Bildarray möchte ich den Zellenwert auf 1 setzen, wenn der aktuelle Wert nicht Null ist.
So, ich schleife in das 2d-Array und überprüfe den Zellenwert und versuche, ihn auf 1 zu setzen.
Es gibt mir einen Fehler, der angibt, dass das Array schreibgeschützt ist. Ich habe mehrere Stapelüberlauf-Threads durchgelesen, in denen diskutiert wurde, dass np-Arrays unveränderlich sind und es noch ein bisschen unklar ist. Ich benutze PIL und numpy
Danke @ user2314737. Ich werde versuchen, dieses Flag zu setzen. @Eric, danke auch für deine Kommentare.
from PIL import Image
import numpy as np
Der entsprechende Code:
prArray = [np.asarray(img)[:, :, 0] for img in problem_images]
for img in prArray:
for x in range(184):
for y in range(184):
if img[x][y] != 0:
img[x][y] = 1
Der Fehler "Zuweisungsziel ist schreibgeschützt" befindet sich in der letzten Zeile.
Vielen Dank an alle für die Hilfe.