hallo,
weiss einer von euch wie man einen string nach einem 3d array umsetzt?
ich habe ein bild in einem string in einem file gesetzt, und jetzt muss ein anderer computer/program es umsetzten in ein 3d array.
hier ein kleines stück aus den string:
-----
('xq,aZ\x15ng)rk-vo8tm6oh7mf5lb;_U.VL\x1eSI\x1bSH\x16[P\x1eeZ!mb){m0}o2~t2\x81w5\x82{6\x81z5\x7f|3\x7f|3}|2}|2~}3\x7f~4\x81\x806\x81\x806\x81\x806\x81\x806\x81\x806\x81\x806\x82\x825\x82\x825\x83\....
-----
es sind x-y coordinaten, und rgb farben.
es muss so aussehen:
L[x][y][rgb]
brauche hilfe ,
unstable
string nach 3d array
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi unstable,
in welcher Bittiefe sind die einzelnen Werte?
x und y in je 16 und rgb in 24 Bit?
dann ginge das so:
es muss dann noch big- und littleendian berücksichtigt werden und eventuell die *256 beim rechten ord(str[...]) gemacht werden statt beim linken.
Gruß
Dookie
in welcher Bittiefe sind die einzelnen Werte?
x und y in je 16 und rgb in 24 Bit?
dann ginge das so:
Code: Alles auswählen
def to_list(str):
result = []
i = 0:
while i < len(str):
tmp = [ord(str[i])*256 + ord(str[i+1]),
ord(str[i+2])*256 + ord(str[i+3]),
[ord(str[i+4]), ord(str[i+5]), ord(str[i+6])]]
result.append(tmp)
i += 7
return result
Gruß
Dookie
ich probere 2d und 3d arrays zu machen.
aber es geht nicht in Python.
kann das sein?
oder gibt es einen trick?
ich will so einen array: L[][][]
also 3d.
2d wäre für den anfang auch nicht schlecht. ( L[][] )
thx,
unstable
ps. ich weiss nicht in welcher bittiefe die werte sind...
wo sieht man das?
edit: es sieht doch nach 24 bit aus bei rgb
aber es geht nicht in Python.
kann das sein?
oder gibt es einen trick?
ich will so einen array: L[][][]
also 3d.
2d wäre für den anfang auch nicht schlecht. ( L[][] )
thx,
unstable
ps. ich weiss nicht in welcher bittiefe die werte sind...
wo sieht man das?
edit: es sieht doch nach 24 bit aus bei rgb
why bother with a sig?
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi nochmal,
sicher gehts auch mit 3DArrays,Also einfach die Listen verschachteln.
Zu dem String, ist in dem Fall wohl eher ein Bytearray, wo kommt der her? Dann kann man vielleicht rausfinden wie die Daten abgelegt sind.
Gruß
Dookie
[/code]
sicher gehts auch mit 3DArrays,
Code: Alles auswählen
dreiD=[[[1, 2, 3],[4, 5, 6],[7, 8, 9]],[[10, 11, 12],[13, 14, 15],[16, 17, 18]]]
print dreiD[0][2][1]
Zu dem String, ist in dem Fall wohl eher ein Bytearray, wo kommt der her? Dann kann man vielleicht rausfinden wie die Daten abgelegt sind.
Gruß
Dookie
[/code]
ich habe rausgefunden wie es geht.
man setzt nicht in einen array, sondern in 3 einzelnen werte:
import Image
from VideoCapture import Device
cam = Device()
cam.setResolution(640,480)
buffer, width, height = cam.getBuffer()
im = Image.fromstring('RGB', (width, height), buffer, 'raw', 'BGR', 0, -1)
im.save('jooo.jpg')
man setzt nicht in einen array, sondern in 3 einzelnen werte:
import Image
from VideoCapture import Device
cam = Device()
cam.setResolution(640,480)
buffer, width, height = cam.getBuffer()
im = Image.fromstring('RGB', (width, height), buffer, 'raw', 'BGR', 0, -1)
im.save('jooo.jpg')
why bother with a sig?