グレースケール画像をRGB
フォーマットに変換する方法は? Aforgeライブラリも追加しましたが、色付けのしきい値を定義できません。
3 に答える
私はあなたが何を意味しているのかはっきりと理解していませんConvert gray scale image to RGB
。あなたは色を復活させようとしていると思います. 残念ながら、正確に行うことはできません。つまり、グレースケール画像から色を復活させることができますが、この色は、グレーに変換する前の色とはまったく異なります。カラーからグレースケールへの標準的な変換では、画像のすべてのピクセルが次の式で変換されることを前提としています。
G(R,G,B) = 0.299*R + 0.587*G + 0.114*B
ここでR
、G
とB
はRGB
ピクセルの値です
あなたが理解しているように、変換は多くの異なる結果をもたらす可能性があります。詳細については、http://en.wikipedia.org/wiki/Grayscaleを参照してください。
また、このプロジェクトをご覧になることもできます。グレースケール画像から色を復活させようとするソリューションを実装しています。ただし、この色は元の色ではないことに注意してください
アントンは、結果として得られるカラー画像が元の画像の色を持たないという良い点を持っています. これが、グレースケール画像を着色することを偽着色と呼ぶ理由です。パレット付きの画像の場合は、パレットを置き換えるだけです。パレットのない画像の場合、使用する数式を定義する必要があります。私たちのアプリケーションでは、グレーの画像に色を付ける機能を備えた、leadtools という sdk を使用しましたが、非常に役立つことがわかりました。
Aforge を使用してこれを行います。
var filter = new GrayscaleToRGB();
var RGBBitmap = filter.Apply(AForge.Imaging.Image.Convert16bppTo8bpp(bitmap));
(すでに 8bpp ビットマップがある場合は、変換を省略できます)
GrayscaleToRGB は AForge.Imaging.Filters にあります