我想转换每像素 24 位 (Rgb) int 每像素 8 位 tiff 图像是否有任何代码可以转换,请分享或告诉我 c 锐化中的算法
问问题
3880 次
3 回答
1
你的意思是如何将RGB图像变成灰度图像?一种简单的基于感知的方法是将其转换为YIQ 颜色空间并丢弃色度信息。您可以通过以下等式生成亮度部分:
l = (0.299*r) + (0.583*g) + (0.114*b)
于 2010-01-05T09:23:57.453 回答
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,您只需要循环浏览它们。
于 2010-01-06T02:41:30.843 回答
1
假设您的意思是要将 24 位彩色图像转换为 8 位彩色图像,那么您需要研究抖动算法。
此页面上描述了一个非常简单的抖动算法:http ://wwwhome.cs.utwente.nl/~schooten/graphics/ 它的质量不是很高,但作为第一次尝试很容易理解。
之后,试试 Floyd-Steinberg 抖动算法。 http://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering
于 2010-01-06T03:05:48.493 回答