Ich habe eine binäre Bilddatei (1=weisses Pixel, 0=schwarzes pixel) in einem int8 array gespeichert (jeweils 8 pixel in einem byte). Jetzt möchte ich gerne ein array erzeugen, das weiterhin das bild repräsentiert, jedoch mit 8 bit pro pixel. Dazu müsste ich aus jeweils einem byte im array 8 byte machen, in denen dann jeweils 0 oder 1 steht.
dazu habe ich eine Schleife programmiert. Die ist schweine langsam:
Code: Alles auswählen
def update(self, image, width, height):
for i in range(height):
for j in range(width/8):
k = image[i,j]
if (k/128):
k=k%128
self.mean[i,(j*8)] = 1
if (k/64):
k=k%64
self.mean[i,(j*8)+1] = 1
if (k/32):
k=k%32
self.mean[i,(j*8)+2] = 1
if (k/16):
k=k%16
self.mean[i,(j*8)+3] = 1
if (k/8):
k=k%8
self.mean[i,(j*8)+4] = 1
if (k/4):
k=k%4
self.mean[i,(j*8)+5] = 1
if (k/2):
k=k%2
self.mean[i,(j*8)+6] = 1
if (k/1):
self.mean[i,(j*8)+7] = 1
Vielen Dank für eure Antworten
Felix
Edit (Leonidas): Code in Tags gesetzt.