2017-06-02 2 views
1

Je peux lire l'image jpg du disque dur via PIL, OpenCV, etc. au tableau numpy via certaines fonctions intégrées comme arr= cv2.imread(filename).Comment décoder l'image jpg de la mémoire?

Mais comment décoder jpg en binaire fromat de la mémoire? Cas d'utilisation: Je veux mettre jpg image dans la base de données au format binaire, puis le lire de DB dans la RAM et le décoder en tableau numpy est-il possible?

Répondre

1

En supposant que vous stockez les données d'image dans votre base de données en tant que string, vous devez d'abord construire un tableau numpy de cette chaîne qui peut être converti plus tard à l'image en utilisant cv2.imdecode comme:

img = cv2.imdecode(np.fromstring(img_data, dtype=np.uint8), -1) 
0

pour python3 utiliser cette façon

f= open('file.png', 'rb') 
fs = f.read() 
likefile = io.BytesIO(fs) 
face1 = misc.imread(likefile) 

python2 a StringIO