【问题标题】:filter to reverse anti-alias effects过滤以反转抗锯齿效果
【发布时间】:2010-08-31 06:08:24
【问题描述】:

我有行和文本的位图,它们应用了抗锯齿。我想开发一个过滤器来消除抗锯齿的影响。我正在寻找如何去做的想法,所以首先我需要了解抗锯齿算法是如何工作的。有没有好的链接,甚至是代码?

【问题讨论】:

  • 我猜你想做边缘检测,以及某种形式的边缘增强。也许像浮雕
  • 是的,我正在研究边缘检测例程,但在某些线条或文本靠得很近的区域会失败,并且抗锯齿会导致一些模糊。我的边缘检测必须保持形状分开,所以我需要某种过滤器来识别抗锯齿像素并在边缘检测发生之前将它们移除

标签: c# .net antialiasing


【解决方案1】:

我需要了解抗锯齿算法的工作原理

抗锯齿的工作原理是在将图像下采样到输出分辨率之前以更高的分辨率渲染图像。在下采样过程中,较高分辨率的像素被平均以创建较低分辨率的像素。这将在渲染图像中创建更平滑的颜色变化。

考虑这个非常简单的例子,块轮廓呈现在白色背景上。

然后在创建具有灰度阴影的像素的过程中将其下采样到分辨率的一半:

下面是用于渲染字母 S 的更真实的抗锯齿演示:

【讨论】:

  • 如果我记得我在大学的 CG&V 课上被称为超级采样?很好的答案。
【解决方案2】:

我对 C# 编程一点也不熟悉,但我确实有图形方面的经验。最接近抗锯齿滤镜的是锐化滤镜(至少在实践中,使用 Photoshop),通常根据所需效果应用多次。当抗锯齿元素和背景之间已经有很大的对比时,锐化滤镜效果最好,如果背景是一种纯色而不是复杂的图形,效果会更好。

如果您可以使用任何高级图形编辑器,您可以尝试一些测试,如果您对结果感到满意,您可以开始研究锐化滤镜。

此外,如果您使用灰度位图,更好的解决方案是将其转换为黑白图像 - 这将消除其上的任何抗锯齿。

希望这至少有一点帮助:)

【讨论】:

  • 谢谢。我会看看锐化过滤器。我曾尝试转换为灰度并使用黑/白滤镜,但通常我有滤镜假定应该是白色的形状,我无法想出一个适用于所有情况的良好阈值。锐化滤镜可能更智能,因此我将研究该选项。
  • 很高兴能提供帮助。不过,我不会放弃黑白转换,因为如果您可以忍受拥有黑白位图,那么这种方法将是您最好的选择。转换为灰度后,尝试在增加对比度的同时降低亮度。这将有助于在转换为黑白之前更好地“清理”图像并更好地定义区域。
  • 有趣。我必须弄清楚如何计算和操纵光度。好的提示,谢谢。
  • 我建议您寻找亮度/对比度过滤器,因为它们通常组合在一起,或者至少在大多数图形编辑器中它们是组合在一起的。很抱歉,我无法进一步帮助您。多年的平面设计经验告诉我如何使用它们以及何时使用它们,而不是它们的实际创建方式。
猜你喜欢
  • 2016-09-30
  • 1970-01-01
  • 1970-01-01
  • 2011-07-17
  • 2014-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-28
相关资源
最近更新 更多