2012-06-18 17 views
10

Qual è il formato BMP per le immagini in scala di grigi (in particolare per 16 bit per pixel)? Il wikipedia parla solo di immagini a colori per bmp.Qual è il formato BMP per le immagini in scala di grigi?

Aggiornamento:

Solo per un aggiornamento e di informazione per i futuri visitatori, sto andando per PGM come questo è compresso e può supportare 16 bit in scala di grigi. Un'altra opzione era usare PNG, ma comprime i dati (che non è quello che voglio) come discusso here. Si noti inoltre che l'immagine potrebbe apparire distorta, poiché la maggior parte dei monitor supporta 256 colori e non 4096 per 16 bit. Quindi l'immagine sarà saturata.

È stato comunque sorprendente sapere che BMP è quasi impotente in caso di scala di grigi per immagini a 16 bit.
Grazie per le persone che mi hanno aiutato a capire il problema.

+0

È necessario utilizzare un formato diverso se si desidera la scala di grigi a 16 bit - Suggerisco PNG. –

+0

è la compressione senza perdita? – gpuguy

+0

Sì, PNG non ha perdite - utilizza zlib per la compressione: https://en.wikipedia.org/wiki/Portable_Network_Graphics –

risposta

3

Per le immagini in scala di grigi, vorrei utilizzare BMP a 8 bit. I BMP a 8 bit possono codificare i colori con la tavolozza. Tuttavia, se non ne usi uno, puoi semplicemente interpretare i valori di colore [0...255] come colori dal nero (0) al bianco (255).

Modifica: Non vorrei utilizzare BMP per immagini in scala di grigi a 16 bit. Tecnicamente, è possibile utilizzare il formato BMP a 16 bit per pixel per codificare i dati in scala di grigi a 16 bit (http://en.wikipedia.org/wiki/BMP_file_format#Pixel_format). Tuttavia nella pratica questa è una cattiva idea (leggi: hacky) poiché tale profondità è progettata per codificare i campioni alfa, rosso, verde e blu dei pixel.

Un formato migliore per la memorizzazione di dati a 16 bit per pixel in scala di grigi è PNG.

Chiedi anche a te stesso, hai veramente bisogno di quella precisione? Per la maggior parte delle applicazioni, 8 bit per pixel vanno bene (= se non si hanno requisiti specifici di precisione, questo è il caso).

+0

Questo non lo aiuta davvero con le sue immagini in scala di grigi a 16 bit. – trumpetlicks

+0

Sì. La domanda è stata aggiornata più tardi con quelle informazioni. – jsalonen

+0

Ci scusiamo, non ha prestato attenzione a quello che è un aggiornamento :-) – trumpetlicks

2

Hai ragione, BMP conosce solo i colori. Il modo per farlo è creare una tavolozza di 256 voci, in cui ogni voce ha lo stesso valore per R, G, B: prima voce (0,0,0), seconda voce (1,1,1), ecc. rendere l'immagine 8 bit per pixel usando la tavolozza.

Modifica: dato il tuo nuovo requisito per la scala di grigi a 16 bit, penso che tu abbia 2 scelte: convertire a 8 bit, o usare un formato diverso diverso da BMP.

+0

Questo davvero non lo aiuta con le sue immagini in scala di grigi a 16 bit !!! – trumpetlicks

+0

@trumpetlicks, la domanda non ha menzionato 16 bit quando è stata scritta. –

+0

Ci scusiamo, non ha prestato attenzione a questo come un aggiornamento :-) A parte questo, buona risposta! – trumpetlicks

1

Come sembra, TIFF e PNG supportano nativamente la scala di grigi a 16 bit.

http://en.wikipedia.org/wiki/Grayscale

Im supponendo che queste immagini che si desidera salvare non sono semplicemente per la visualizzazione, ma per una sorta di post-elaborazione in cui è necessario la precisione in più? In caso contrario, suggerirei di eliminare gli 8 bit meno significativi e di memorizzare una bitmap a 8 bit più semplice con una mappa a colori per mappare ciascun valore su un RGB con un valore -> (valore, valore, valore) mappatura RGB.

Problemi correlati