グレースケール画像をRGB (32bpp) ディスプレイで表示する場合の計算について。


 いま,深さ14 bit グレースケール(グレイスケール)の画像を,なんらかの変換処理をして,32bpp (bits per pixel) RGBのディスプレイ(最近のグラフィックチップであれば,対応していることが多い bpp)で表示するプログラムを書きたいと思っております。
 この場合の変換の計算アルゴリズムを教えていただけないでしょうか。解説してあるWebページや,関連情報でも結構です。

(14bit グレースケールが直接表示できる特殊なディスプレイがあることは知っていますが,今は,それを使わないで,普通のPCで表示をしたいのです。もしかしたら,そんなのは割り算一発だよ,というのが結論かもしれませんが,それでもかまいませんので,その場合でも具体的な変換式を教えていただけると助かります。)

よろしくお願いいたします。

回答の条件
  • 1人3回まで
  • 登録:2006/09/28 13:00:50
  • 終了:2006/10/05 13:05:03

回答(2件)

id:furutanian No.1

furutanian回答回数112ベストアンサー獲得回数142006/09/28 14:45:39

ポイント35pt

具体的な条件(機種とか、OSとか、画像フォーマットとか)の指定がないので、観念的な話になりますが。

深さ14bitのグレースケールということは、0~0x3FFFの16384段階の明度情報ってコトですよね?

一方で、RGB(32bpp)というのは実際はRGBごとに0~0xFFの256段階ですから、この範囲内に落としてやればいいわけで、各画素ごとに……

B = R = G = GrayScaleLevel >> 6;

……という計算(64で割る)を繰り返せばよいのではないですか? ちがうかな?

http://www.kk.iij4u.or.jp/~kondo/bmp/

id:systemyasan

 さっそくのご回答,ありがとうございます。

 やはり,そういうことでいいのですかね。B,R,G の値が同じであれば,グレイスケールになるわけですね。

 ただし,ご回答の場合は,RGB(24bpp)の場合の話で,32bpp の場合は,αチャンネルというのがあるらしいですね。このαチャンネルには,どういう値を計算して入れればよいのでしょうか?

参考: http://e-words.jp/w/bpp.html

それをご存知でしたら,ご教示のほどお願いいたします。

2006/09/28 14:59:14
id:furutanian No.2

furutanian回答回数112ベストアンサー獲得回数142006/09/28 15:24:39

ポイント35pt

アルファチャンネルとは「透過度」のコトですね。

http://e-words.jp/w/E382A2E383ABE38395E382A1E38381E383A3E383B3E3...

#リンクしとけよ>e-Words

一般に「不透明」でよろしいと思います。

id:systemyasan

なるほど,分かりました。

だとすると,意外と簡単なアルゴリズムでよさそうですね。ありがとうございます。

他の方で,もし,ご異論があれば,ぜひお知らせください。

2006/09/28 15:33:33

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません