OpenCV与AI深度学习 | 基于Python和OpenCV将图像转为ASCII艺术效果

本文来源公众号**"OpenCV与AI深度学习"**,仅用于学术分享,侵权删,干货满满。

原文链接:基于Python和OpenCV将图像转为ASCII艺术效果

在广阔且不断扩展的编码项目领域中,那些将艺术与技术融为一体的人占据着特殊的地位。其中一个项目是从数字图像创建 ASCII艺术图------这一过程将普通图片变成 ASCII 标准字符的马赛克。这是探索计算机视觉和 Python 编程的一种有趣的方式。今天,我很高兴与大家分享一种简单而强大的方法,使用 Python 和 OpenCV 将任何图像转换为 ASCII 艺术图。

1 什么是 ASCII 艺术?

ASCII 艺术是一种图形设计技术,它使用 ASCII 标准中的可打印字符来创建视觉艺术。它自计算机诞生之初就已存在,作为在仅支持文本的环境中进行图形表示的一种方式。从简单的笑脸(如 :-) 到复杂的肖像,ASCII 艺术展示了仅使用有限的字符集即可实现的创造力。

2 为什么使用 Python 和 OpenCV?

Python 以其简单性和可读性而闻名,使其成为初学者和专业人士的理想语言。当与开源计算机视觉和机器学习软件库 OpenCV 结合使用时,Python 成为图像处理任务的极其强大的工具。

OpenCV 简化了复杂的图像处理任务,例如读取图像和调整图像大小,并将其转换为灰度 - 生成 ASCII 艺术的基本步骤。

3 如何从图像创建 ASCII 艺术

该过程包括加载图像、将其转换为灰度以简化强度信息、调整其大小以适合输出介质(如控制台或文本文件),然后将每个像素的强度映射到特定的 ASCII 字符。结果是原始图像的文本表示,可以在任何文本编辑器或控制台中查看。

4 分步指南

安装 OpenCV:确保安装了 Python 和 OpenCV。OpenCV 可以使用 pip 轻松安装:

复制代码
pip install opencv-python

**加载和处理图像:**脚本读取图像文件,将其转换为灰度,并调整其大小。这将为图像转换为 ASCII 做好准备。

**将像素转换为ASCII:**通过将每个像素的强度映射到预定义集中的字符,脚本将图像转换为 ASCII 艺术。根据感知的视觉重量来选择字符,较暗的字符代表图像的较暗区域。

**输出ASCII 艺术作品:**最后,脚本将 ASCII 艺术作品打印到控制台或将其保存到文件中。

5 Python 代码

python 复制代码
import cv2

def load_image(image_path):
    # Load an image in grayscale
    return cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)

def resize_image(image, new_width=100):
    # Compute the ratio of the new width to the old width, and adjust height accordingly
    ratio = new_width / image.shape[1]
    new_height = int(image.shape[0] * ratio)
    return cv2.resize(image, (new_width, new_height))

def pixel_to_ascii(image):
    # Map grayscale values to ASCII characters
    ascii_chars = "@%#*+=-:. "
    new_image = []
    for row in image:
        new_image.append(''.join([ascii_chars[pixel//32] for pixel in row]))
    return "\n".join(new_image)

if __name__ == "__main__":
    image_path_ = './lena.jpg'
    image_ = load_image(image_path_)
    if image_ is None:
        print("Error loading image.")
    else:
        image_ = resize_image(image_)
        ascii_art = pixel_to_ascii(image_)
        print(ascii_art)

您可以将脚本保存在名为 的文件中main.py。现在,让我们使用此源图像测试脚本:

运行脚本:

复制代码
python main.py

我们得到了美丽的ASCII艺术图:

THE END!

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

相关推荐
Allen_LVyingbo29 分钟前
数智读书笔记系列035《未来医疗:医疗4.0引领第四次医疗产业变革》
人工智能·经验分享·笔记·健康医疗
zzc92135 分钟前
时频图数据集更正程序,去除坐标轴白边及调整对应的标签值
人工智能·深度学习·数据集·标签·时频图·更正·白边
isNotNullX36 分钟前
什么是数据分析?常见方法全解析
大数据·数据库·数据仓库·人工智能·数据分析
烛阴37 分钟前
一文搞懂 Python 闭包:让你的代码瞬间“高级”起来!
前端·python
riveting1 小时前
明远智睿H618:开启多场景智慧生活新时代
人工智能·嵌入式硬件·智能硬件·lga封装·3506
JosieBook1 小时前
【Java编程动手学】Java中的数组与集合
java·开发语言·python
夜阑卧听风吹雨,铁马冰河入梦来1 小时前
Spring AI 阿里巴巴学习
人工智能·学习·spring
c7691 小时前
【文献笔记】Automatic Chain of Thought Prompting in Large Language Models
人工智能·笔记·语言模型·论文笔记
Blossom.1182 小时前
机器学习在智能供应链中的应用:需求预测与物流优化
人工智能·深度学习·神经网络·机器学习·计算机视觉·机器人·语音识别
Gyoku Mint2 小时前
深度学习×第4卷:Pytorch实战——她第一次用张量去拟合你的轨迹
人工智能·pytorch·python·深度学习·神经网络·算法·聚类