14

グレースケール画像(特に16ビット/ピクセル)のBMP形式は何ですか?ウィキペディアはbmpのカラー画像について話しているだけです。

アップデート:

将来の訪問者のための更新と情報のためだけに、これは非圧縮であり、16ビットグレースケールをサポートできるため、 PGMを使用します。もう1つのオプションは、PNGを使用することでしたが、ここで説明するように、データを圧縮します(これは私が望むものではありません)。また、ほとんどのモニターは256色をサポートしており、16ビットの場合は4096ではないため、画像が歪んで表示される場合があることにも注意してください。したがって、画像は飽和状態になります。

16ビット画像のグレースケールの場合、BMPがほとんど役に立たないことを知って驚いた。
問題を理解するのを手伝ってくれた人々に感謝します。

4

4 に答える 4

4

グレースケール画像の場合、8ビットBMPを使用します。8ビットBMPは、パレットを使用して色をエンコードできます。ただし、使用しない場合は、色の値[0...255]を黒(0)から白(255)までの色として簡単に解釈できます。

編集: 16ビットグレースケール画像にはBMPを使用しません。技術的には、16ビットのグレースケールデータをエンコードするために16ビット/ピクセルのBMP形式を使用できます(http://en.wikipedia.org/wiki/BMP_file_format#Pixel_format)。ただし、実際には、これは悪い考えです(読み:ハッキー)。その深さは、ピクセルのアルファ、赤、緑、青のサンプルをエンコードするように設計されているためです。

ピクセルあたり16ビットのグレースケールデータを保存するためのより良い形式はPNGです。

また、自問してみてください、あなたは本当に、本当にその特別な精度が必要ですか?ほとんどのアプリケーションでは、ピクセルあたり8ビットで十分です(=精度に関する特定の要件がない場合は、これが当てはまります)。

于 2012-06-18T16:06:06.017 に答える
3

そうです、BMPは色についてしか知りません。これを行う方法は、256エントリのパレットを作成することです。ここで、各エントリはR、G、Bに対して同じ値を持ちます:最初のエントリ(0,0,0)、2番目のエントリ(1,1,1)など。パレットを使用して、画像を1ピクセルあたり8ビットにします。

編集:16ビットグレースケールの新しい要件を考えると、2つの選択肢があると思います。8ビットに変換するか、BMP以外の別の形式を使用します。8ビットに変換する場合は、ディザリングを使用して、ソースの16ビット画像と視覚的に区別できない結果を作成できます。

于 2012-06-18T16:08:00.710 に答える
2

表示されているように、TIFFとPNGはネイティブに16ビットグレースケールをサポートしています。

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

保存したいこれらの画像は、単に表示するためだけでなく、特別な精度が必要なある種の後処理のためのものだと思いますか?そうでない場合は、最下位の8ビットを削除し、カラーマップを使用してより単純な8ビットビットマップを保存し、各値を値->(値、値、値)RGBマッピングを使用してRGBにマップすることをお勧めします。

于 2012-06-18T19:10:07.517 に答える
0

グレースケール画像のBMP形式とは何ですか

パレットを使用する以外に、。を使用してBMPを書き込むことにより、グレースケールBMP(ピクセルあたり8ビット)を作成できますBITMAPV4HEADERbV4RedMaskbV4GreenMaskbV4BlueMask同じ値に設定します。ただし、このような形式の最小bcBitCount値は16であるため、各ピクセルは2バイトを占める必要があります。ただし、2番目のバイトをアルファチャネル(透明度)に使用できます。

特に16ビット/ピクセルの場合

どのBMPバージョンも16ビットの色深度をサポートしているようには見えません。ファイル形式で許可されているように見えますが(bcBitCount=16およびbV4…Mask=0xFFFF)、画像エディタとライブラリは余分なビットを破棄します。

一部のドキュメントは64BPPBMPファイルを参照していBITMAPV4HEADERますが、マスクフィールドのサイズはすべて32ビットであるため(64 BPPのチャネルマスクを指定することはできません)、フィールドにどのように適合するかは不明です。

もう1つのオプションは、PNGを使用することでしたが、ここで説明するように、データを圧縮します(これは私が望むものではありません)。

必要がなければ、PNGファイルを圧縮する必要はありません。圧縮レベル0を使用すると、ピクセルはそのままになります(さらに、zlibヘッダー/フッター)。

また、ほとんどのモニターは256色をサポートしており、16ビットの場合は4096ではないため、画像が歪んで表示される場合があることにも注意してください。

16ビット深度では、4096ではなく65536のチャネルごとの明度値が可能になります。歪みはガンマ曲線の問題のように聞こえ、ファイル形式の問題とは実際には関係ありません。

于 2019-01-11T00:23:45.103 に答える