24ビットのBMPを取得し、それをモノクロビットマップに変換するにはどうすればよいですか?色落ちなどは気にせず、他のファイル形式は使いたくない。
1 に答える
基本的に2つの方法があります。相互運用機能メソッドを使用して、生のBMPデータを読み取り、monchromeビットマップの生のBMPデータを書き込むことができます。これを行うグーグル可能な関数があります。
または、ImageMagickObjectを使用して、ストイカスティックディザを使用して画像を変換することもできます。
2番目のことを行います。
最初のディザを実行する場合でも、stocichasticディザを使用する必要がありますが、手動で実装する必要があります。
編集:あなたは「次のRGB値はどうなるか」と尋ねました...答えはそれらがあなたが望むものになるということです。あなたが決める。
明らかな選択は、厳密なしきい値を使用することです。この場合、X未満のものは黒になり、それ以上のものは白になります。または、ストイカスティックディザを使用できます。のように、黒のしきい値bt
と白のしきい値の2つのしきい値を選択wt
し0 < bt < wt < 255
ます。q
次に、各ポイントについて、0.0の間の乱数を選択します。および1.0。ピクセルの明るさ((r+g+b)/3
)を。と比較し(q*(wt-bt)+bt)
ます。それ以上の場合は白、それ以下の場合は黒です。これにより、ディザリングされたグレースケールが得られます。ほとんどの場合、31と224はbtとwtに適した値ですが、写真画像の場合は0と255の方が適している場合があります。