Je bosse sur des images médicales venant de sources différentes, avec des résolutions différentes; je ne parle pas de dpi mais bien de la taille des voxels (équivalent pixels en 3D). Par exemple je vais me retrouver avec une image dont les pixels feront 0.92x1.1x1.2 mm.
Je dois faire des "planches contact" de mes images. Pour chaque image médicale j'extraie une "tranche" pour l'afficher. J'utilise donc une techno simple et connue : matplotlib.pyplot. Problème: je me retrouve avec des images déformées dans des proportions variables et ce quel que soit le mode d'affichage utilisé:
- extent, qui force l'image à remplir une zone de dimensions données. Comme les images sont différentes, celles dont les dimensions originales sont proches de celle de la zone ne vont quasiment pas être affectées, celles qui sont très différentes ne vont ressembler à rien.
- aspect, qui va agir comme un zoom à base de ratio. Le Ratio étant différent pour chaque image, c'est mort.
J'en suis arrivé à prendre le problème à l'envers: puisque mes voxels sont anisotropes je rééchantillonne les données 3D pour que lesdits voxels aients comme dimensions 1.0x1.0x1.0. Sauf que c'est overkill, et lent.
Je peux travailler sur les images 2D, mais ça ne va pas beaucoup plus vite (et le résultat est moins bon).
Je cherche donc à savoir s'il est possible de forcer la taille des pixels lors de l'affichage d'une image avec matplotlib.pyplot, quitte à faire une conversion. Pour le moment je n'ai pas trouvé.