2010-01-05 103 views
0

我要换算成每pixcel 24位(RGB)每像素的TIFF图像中间体8位没有任何代码转换,请分享或告诉我在C尖锐的算法中转换24Bit的8位TIFF

回答

1

你的意思是你如何将RGB图像变成灰度图像?一种简单的基于感知的方法是将其转换为YIQ colorspace并丢弃色度信息。你可以通过这个公式生成亮度部分:

l = (0.299*r) + (0.583*g) + (0.114*b) 
1

这里是一个很好的教程用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,您只需循环播放它们即可。