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.
Vuoi salvare in PNG? – mdurant
In realtà sto salvando in formato TIFF, anche se sono interessato alle risposte relative a qualsiasi formato raster, incluso PNG. – sircolinton
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. –