Ich habe die folgende Base64-Zeichenfolge, die ein Bild ist: Link to base64 image und ich möchte das Bild in Matlab zurück. Ich habe die folgende Website verwendet, um zu überprüfen, ob das Bild gültig ist: https://codebeautify.org/base64-to-image-converter und es funktionierte ohne Probleme.Wie liest man base64-Bilder in MATLAB aus?
Wenn das Bild herunterzuladen, nachdem es von der Website Decodierung, erhalte ich folgende Informationen:
Das Bild der Größe 512x512 und eine Bittiefe von 32 Bit hat. Außerdem weiß ich, dass dies ein Farbbild ist.
Ich habe den hier genannten Ansatz Decode base64 to RGB image in matlab versucht, der die Apache-Bibliothek verwendet. Wenn jedoch mit dem folgenden Code:
result = native2unicode(base64.decode(uint8(img)).');
wo img
ist der Base64-String, wird Ergebnis ein 599636
langer char-Array sein. Jedoch, 512*512*3 = 786432
.
Ich frage mich, wie man von hier fortfahren, um das 512 * 512 Farbbild zu bekommen?
Edit:
Meine aktuelle Problemumgehung ist die base64 kodierte Bild in eine Textdatei zu schreiben, und lesen Sie es über Python aus, und schreiben Sie es als Bild auf der Disk, und es in Matlab neu zu laden. Was funktioniert, ist aber sehr, sehr hässlich. In Python funktioniert es mit dem einfachen Skript:
import base64
f = open('test.txt','r')
message = f.read()
print(message)
with open("imageToSave.png", "wb") as fh:
fh.write(base64.decodebytes(bytearray(message,'utf-8')))
Danke Ich werde versuchen, dass - ist es möglich, das Bild zuzugreifen, ohne dass es auf die Festplatte zu schreiben? – Kev1n91
Ich habe keine schnelle vorgefertigte Lösung gefunden, aber es muss eine geben. –