[C/C++] Bitmap Grayscale Conversion

  • Bitmap Grayscale Conversion
  • Download:bmpGrayConvertor.zip

    繼上次的[C/C++] Bitmap Bit Conversion之後,心血來潮再做一個Grayscale的。Grayscale比bit conversion容易實做多了,一個簡易的Grayscale的演算如下:

    ----------------------------------------------

    newRGB = (R*2 + G*5 + B) / 8

    ----------------------------------------------

    一個24bits全彩的pixel裡的紅色乘上2+綠色乘上5+藍色的總和再除以8,存到一個為8bits的pixel裡,所以技巧跟bitConversion很像,只是調色盤換了而已。

    這個範例裡所使用的調色盤:

    輸出結果如下:










    [左圖]是24bits全彩原始圖,[右圖]則是轉換成8bits grayscale的圖。雖然與完美的grayscale相比仍有些差距,但整體來說已經不錯了。

    這次的程式還有稍微處理一下width padding的問題,理論上應該可以正常轉換非4倍數大小的圖片。

No comments:

Post a Comment

Orange - data analysis tool

Installation pip install orange3 Run orange python -m Orange.canvas