2011年11月18日 星期五

Week 11: 色彩模型(二)

1. Y' = 0.299 * R'd + 0.587 * G'd + 0.114 * B'd

2. TBitmap::PixelFormat



範例程式: DIP2011F-SP-W11


影像檔案大小: 786,486 Bytes

將彩色影像 WaterLily.bmp 讀入後, 針對每一個像素的 RGB 色彩值, 將 R、B 色彩值均設為 0, 就可以得到一張只有顯示出綠色成份的影像。


影像檔案大小: 786,486 Bytes

若要顯示出色彩明亮程度的影像, 其做法如下:

將彩色影像 WaterLily.bmp 讀入後, 針對每一個像素的 RGB 色彩值, 計算其對應的亮度 Y 值, 然後將新影像的 PixelFormat 設定為 pf8bit, 然後利用 Scanline 將 Y 值寫入影像元件的記憶體中, 就可以得到一張位元深度是 8 位元的彩色影像, 如下圖所示。


影像檔案大小: 263,222 Bytes

由於 C++ Builder 中的 8 位元影像是用一個調色盤來顯示影像的色彩, Scanline 所指向的記憶體中所存的資料, 只是調色盤的色彩之編號而已。上述影像之所以會顯示成這般模樣, 就是用了 預設的調色盤的緣故。因此, 如果想要正確顯示其灰階的模樣, 就要另外指定一個灰階影像專用的調色盤, 就可以正確顯示出下圖的模樣了。


影像檔案大小: 263,222 Bytes

沒有留言:

張貼留言