ピクセルあたり 24 ビット (Rgb) int ピクセルあたり 8 ビットの tiff 画像を変換したい 変換するコードはありますか 共有するか、c シャープのアルゴを教えてください
3 に答える
RGB画像をどのようにグレースケール画像に変えるのですか?単純な知覚ベースの方法は、それをYIQ色空間に変換し、彩度情報を破棄することです。次の式で輝度部分を生成できます。
l = (0.299*r) + (0.583*g) + (0.114*b)
C# コードを使用した優れたチュートリアルを次に示します。
http://www.switchonthecode.com/tutorials/csharp-tutorial-convert-a-color-image-to-grayscale
免責事項: 私は Atalasoft で働いています。
商用ソリューションに興味がある場合は、DotImageでこれを行うことができます。単一のフレーム化された tiff を変換するコードは次のとおりです。
AtalaImage img = new AtalaImage("file.tif");
img = img.GetChangedPixelFormat(PixelFormat.Pixel8bppGrayscale);
img.Save("gray.tif", new TiffEncoder(), null);
複数ページの TIFF がある場合は、それらをループするだけです。
24 ビットのカラー画像から 8 ビットのカラー画像に変換したいということであれば、ディザリング アルゴリズムを調べる必要があります。
非常に単純なディザリング アルゴリズムについては、次のページで説明されています 。
その後、Floyd-Steinberg ディザリング アルゴリズムを試してみてください。 http://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering