【问题标题】:Image to ASCII-art using SDL?使用 SDL 将图像转换为 ASCII 艺术?
【发布时间】:2018-01-16 19:30:15
【问题描述】:

我需要使用 SDL2 用 C 语言编写一个程序,将图像转换为 ASCII 艺术。我把图片上传到程序里,把对比度调高一点,变成灰度图。

我现在该怎么办?我应该创建一个包含“强度”范围内的几个 ASCII 字符 (.+xo0%@#) 的数组,然后用相似强度的字符替换像素吗?

【问题讨论】:

  • 听起来不错,就去做吧?
  • 你的提议听起来很合适。然而,询问如何做到这一点太宽泛了。在我看来(可能不是客观的,别担心)ASCII 艺术比用不同的“灰度值”用 ASCII 替换像素意味着更多的技巧。但是一定要实现一个如所描述的那样运行的程序。如果您遇到特定问题,请描述一下,您很可能会发现人们很乐意帮助您。哦,欢迎来到 StackOverflow!闲暇时拨打tour
  • 非常感谢您的帮助和热烈的欢迎。我会努力的!
  • 出现过这样的问题:stackoverflow.com/questions/394882/…。基本上,您必须将灰色像素分组为块,并且每个块都应替换为符号。块到符号的映射更复杂。
  • 如果您的导师对 ASCII 字符映射没有任何限制,我会尝试使用几个不同的映射,看看哪个看起来最好。

标签: c ascii sdl sdl-2


【解决方案1】:

您需要将图像分解为与固定宽度字符具有相同水平和垂直比例的区域。我们称这个维度为“细胞”。

您还需要每个字符的映射,但将其作为图像渲染到同一个“单元格”中。

然后您需要将图像的单元格与字符单元格进行模糊匹配。选择最匹配的一个作为输出。匹配事物的方法有多种,这与 AI 视觉研究有关。

最强大的技术可以检测边缘,并降低图像的复杂性,以便在尝试字符匹配之前更好地表示图像的线条。这是因为最好的 ascii 艺术更符合线条艺术,而不是照片类型的艺术。

【讨论】:

    猜你喜欢
    • 2016-01-04
    • 2015-10-10
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多