J'essaie de gérer un énorme tableau numpy que je finis par écrire dans une image JPEG en utilisant cv2.imwrite(numpy.array)
. Malheureusement, ce que je suis en train de travailler ne rentre pas dans ma RAM même si l'image JPG finale ne devrait pas dépasser environ 200 Mo.Comment gérer de grandes images en Python en utilisant OpenCV?
Comment puis-je gérer de telles charges sans surcharger ma RAM?
Existe-t-il d'autres façons d'écrire une image sans stocker tout le tableau dans ma mémoire vive en même temps? Il est possible pour moi de charger de petits morceaux du tableau à la fois, mais je ne sais pas quel module/fonction utiliser pour écrire sur une image sans stocker tout le contenu de ma RAM à la fois.
En ce moment, j'ai sauvegardé l'image entière dans 4 images plus petites (quarts) parce que c'est le meilleur que je pouvais faire avec ma RAM limitée. Mais je veux toujours être capable de les assembler en une image complète. L'image cible est une image 26112 x 20480 à 3 canaux.
Mais l'image n'est pas une matrice clairsemée. Sauf si je me trompe, ne sont pas des matrices éparses celles avec beaucoup de zéros? –
La matrice clairsemée ne contient que des valeurs nulles et lorsque vous la convertissez en matrice dense, elle vous renvoie la matrice avec vos données d'origine et quand vous enregistrez votre image en utilisant une matrice clairsemée, elle écrit les données originales de votre image. – user3018945