2014-09-12 16 views
5

Sto utilizzando matplotlib per generare alcune figure tramite savefig. Queste cifre sono in bianco e nero e devono essere salvate ad altissima risoluzione (1000 dpi) in formato TIFF. Sarebbe quindi utile salvarli con una profondità di bit ridotta in modo da utilizzare meno memoria.Modifica della profondità di bit delle figure prodotte utilizzando Matplotlib

A tal fine, la mia domanda: come si specifica la profondità di bit quando si salvano le figure con matplotlib?

Grazie!

+0

Vuoi salvare in PNG? – mdurant

+0

In realtà sto salvando in formato TIFF, anche se sono interessato alle risposte relative a qualsiasi formato raster, incluso PNG. – sircolinton

+0

Sarei sorpreso se matplotlib supporti direttamente tale opzione, ma naturalmente puoi sempre convertire l'immagine in seguito. In alternativa, è possibile utilizzare la libreria di immagini python preferita per salvare una rappresentazione di immagine di array numpy generata dal contenuto matplotlib. –

risposta

1

Finora ho l'impressione che matplotlib non supporti un'opzione di profondità di bit. Sto utilizzando quindi ImageMagick per convertire l'immagine POSTHOC:

convert -monochrome +dither A.tiff B.tiff

Diverse cose mi citato nel caso in cui qualcun altro sta cercando di fare in modo simile:

Quando ho cambiato la profondità in bit eseguendo convert -monochrome A.tiff B.tiff , i caratteri sembravano inaccettabilmente brutti (anche a 1000 DPI!). Ciò è dovuto all'antialiasing, che Matplotlib esegue di default. Non sono riuscito a trovare alcuna opzione per disattivarlo, ma i suoi effetti negativi (quando il downsampling del DPI) può essere ampiamente aggirato abilitando il dithering. Pertanto, anche se è un'opzione per modificare il DPI dell'immagine di output in matplotlib, non è utile a meno che non esegua il dithering o meno che non ci sia anche un'opzione per disabilitare l'antialiasing.

Risposta breve, vorrei suggerire a chiunque si trovi in ​​una situazione simile a quella di fare la loro conversione monocromatica post-hoc come ho fatto io.

Problemi correlati