我需要使用SDL2在C中创建一个程序,将图像转换为ASCII艺术。我将图像上传到程序中,稍微提高了对比度并将其转换为灰度。
我现在该怎么办?我应该创建一个包含几个ASCII字符(。+ xo0%@#)的数组,其范围为" Intensity"然后用相似强度的字符替换像素?
答案 0 :(得分:0)
您需要将图像剖析为具有与固定宽度字符相同的水平和垂直比例的区域。我们称这个维度为“单元格”。
您还需要每个角色的地图,但要将其作为图像渲染到同一个“单元格”中。
然后,您需要将图像单元格与字符单元格进行模糊匹配。选择最接近的一个用于输出。有多种匹配方式,这与人工智能视觉研究有关。
最强大的技术检测边缘,并降低图像的复杂性,以便在尝试字符匹配之前更好地表示图像。这是因为最好的ascii艺术更符合线条艺术,而非照片类艺术。