乌班图 python 图片转为字符画

Python将视频转换为全字符视频(含音频) 转载请注明出处 目录 目录 简介 代码 流程图 注意事项 简介 如何简单的使用python来实现将一部视频转换为字符画视频的效果。 其实,大家都知道视频就是一帧一帧的图片构成的。 那么如今我们想要实现,将视频转换为字符视频,那么是不是可以认为只要将一部视频全部逐帧拆解成图片,然后采取和以前相同的将图片转换为字符画的算法即可。然后在将这些图片按照原先的视... 阅读详情

实验楼链接:https://www.shiyanlou.com/courses/370
实验准备:
PIL 是一个 Python 图像处理库,是本课程使用的重要工具,使用下面的命令来安装 pillow(PIL)库:
sudo pip3 install --upgrade pip
sudo pip3 install pillow
实验原理:
彩色转化生成单色怎么会有区分度呢??这里用到了灰度值的概念
灰度值:指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0,故黑白图片也称灰度图像
另外一个概念是 RGB 色彩:RGB色彩模式是工业界的一种颜色标准,是通过对红®、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一
我们可以使用灰度值公式将像素的 RGB 值映射到灰度值(注意这个公式并不是一个真实的算法,而是简化的 sRGB IEC61966-2.1 公式,真实的公式更复杂一些,不过在我们的这个应用场景下并没有必要):
gray = 0.2126 * r + 0.7152 * g + 0.0722 * b
我们可以创建一个不重复的字符列表,灰度值小(暗)的用列表开头的符号,灰度值大(亮)的用列表末尾的符号
开始实验:
安装好pillow之后,创建py文件,完整PY代码命令下载获取
wget http://labfile.oss.aliyuncs.com/courses/370/ascii.py

# -*- coding=utf-8 -*-

from PIL import Image
import argparse

#命令行输入参数处理
parser = argparse.ArgumentParser()

parser.add_argument('file')     #输入文件
parser.add_argument('-o', '--output')   #输出文件
parser.add_argument('--width', type = int, default = 80) #输出字符画宽
parser.add_argument('--height', type = int, default = 80) #输出字符画高

#获取参数
args = parser.parse_args()

IMG = args.file
WIDTH = args.width
HEIGHT = args.height
OUTPUT = args.output

ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

# 将256灰度映射到70个字符上
def get_char(r,g,b,alpha = 256):
    if alpha == 0:
        return ' '
    length = len(ascii_char)
    gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)

    unit = (256.0 + 1)/length
    return ascii_char[int(gray/unit)]

if __name__ == '__main__':

    im = Image.open(IMG)
    im = im.resize((WIDTH,HEIGHT), Image.NEAREST)

    txt = ""

    for i in range(HEIGHT):
        for j in range(WIDTH):
            txt += get_char(*im.getpixel((j,i)))
        txt += '\n'

    print(txt)

    #字符画输出到文件
    if OUTPUT:
        with open(OUTPUT,'w') as f:
            f.write(txt)
    else:
        with open("output.txt",'w') as f:
            f.write(txt)

下载一个图片
运行文件:python py文件名 图片名
然后vim output.txt
即可看到转好的画

AutoCAD 2025在Win10/Win11上的官方安装、配置与问题排查全指南 对于需要在 Windows 11 或 Windows 10 系统上部署 AutoCAD 2025 的设计师、工程师和 IT 支持人员来说,一个稳定、合规的安装流程是高效工作的基石。网络上充斥着各种所谓的“免费下载”和“一键安装”教程,但这些资源往往来源不明,可能捆绑恶意软件、导致软件崩溃,甚至引发严重的许可合规风险。本文旨在提供一个清晰、安全、基于官方最佳实践的 AutoCAD 2025 安装与配置指南,重点解决在 Windows 11 和 Windows 10 系统上部署时可能遇到的兼容性问题、安装失败以 阅读详情

相关推荐

Unity3D Pico VR 手势交互实战:基于MRTK3实现抓握与射线控制

本文针对Pico VR原生手势交互功能不足的问题,提供了基于MRTK3实现高级手势交互的实战解决方案。通过将MRTK3成熟的交互框架与Pico的手势追踪能力相结合,详细讲解了从环境配置、SDK导入、核心适配到真机调试的全流程,帮助开发者高效实现抓握与射线控制等复杂交互,有效提升Pico VR应用的开发效率与体验。

weixin_29011667的博客 391

Ubuntu 字符终端

进入字符终端sudo /etc/init.d/gdm stop 退出字符终端sudo /etc/init.d/gdm start 字符终端中文显示:sudo apt-get install zhconzhcon --utf8 --drv=vga zhcon web:http://zhcon.sourceforge.net/index_cn.html

jmunic的专栏 1530

STM32G030C8T6 ADC+DMA实战:同时采集外部电压和芯片温度的完整代码流程

本文详细介绍了STM32G030C8T6芯片通过ADC+DMA实现外部电压和芯片内部温度采集的完整流程。从硬件设计到CubeMX配置,再到驱动模块化实现与系统优化,提供了高精度多通道采集系统的实战指南,特别适合嵌入式开发者在工业控制和环境监测项目中应用。

weixin_42653691的博客 468

趣玩Linux

十几种好玩的Linux命令!

m0_50111062的博客 401

大模型推理中Prefill与Decode、KV Cache三者说明

Prefill 阶段对输入 Prompt 并行编码,一次性构建KV Cache,属于计算密集型任务。Decode 阶段逐 token 迭代生成,复用KV Cache避免重复计算,属于显存带宽密集型任务。KV Cache是自回归推理的核心基石,用显存换时间,实现两阶段衔接与高效生成。PD 分离通过任务解耦、异构硬件、异步调度、独立批处理,解决传统一体化推理的资源冲突与利用率低下问题,是当前云端大模型推理服务的主流工程优化方向。

a486259的博客 1490

从代码层面分析STM32 标准库和HAL库的差异

相当于每个设置都是独立的函数。HAL库将一段代码通过宏定义的方式封装成了一个函数,每个端口的时钟都单独的定义了一个名称,标准库是一个独立的函数,通过参数传递的方式来设置每个端口的时钟。这两个版本的函数本质上操作的还是寄存器,不过HAL库操作的只是BSRR寄存器,而标准库端口置1的时候操作的是BSRR寄存器,端口清0的时候操作的是BRR寄存器。标准库设置端口模式的时候,是在if语句中判断之后直接设置的,而HAL端口模式设置时,却使用了switch语句去设置,说明在HAL库中,端口模式和标准库中发生了改变。

HXYDJ的博客 2万+

Python 视频转字符画 - 进阶

昨晚我在网上看到了别人做的视频转字符动画,觉得很厉害,我于是也打算玩玩。今天中午花时间实现了这样一个小玩意。 顺便把过程记录在这里。 1.源视频:https://docs.qq.com/doc/DU3pabWFhWGpXWW5h 2.转换后: 步骤 1、将视频转化为一帧一帧的图片 2、把图片转化为字符画 3、按顺序播放字符画 一、准备 1、模块 这个程序需要用到这样几个模块: 1. opencv-python #用来读取视频和图片 2. numpy...

m0_59485658的博客 1002

非结构化数据在大数据湖中的应用实践

想象一下,你正在整理一个杂乱的书房。有些书整整齐齐地放在书架上,每本书都有明确的标题、作者和出版日期——这些就是结构化数据,它们像数据库中的表格,有固定的格式和字段。但书房里还有更多东西:散落的照片、手写的笔记、录音带、视频光盘、甚至还有画作。这些物品没有固定的格式,每件都独一无二——这就是非结构化数据。在技术术语中,非结构化数据是指没有预定义数据模型或组织形式的信息。文本文档(Word、PDF、TXT)电子邮件和社交媒体内容图像和照片(JPG、PNG)音频文件(MP3、WAV)

软件工程实践的博客 361

Ubuntu字符界面使用

在 Linux 系统下,常用的关机 / 重启命令有 shutdown、halt、reboot、poweroff,他们都可以达到关机或重启系统的目的,但每个命令的内部工作过程是不同的,下面分别介绍。文件,但不会解决模块的依赖广西,且不会关心 Ubuntu 的软件仓库内的软件,可以用于安装本地的 deb 文件,实现手动安装软件包(如网络不通或安装软件源中不存在)。普通用户和超级用户出了用户名和提示符不同,它们的权限也是不同的,超级用户对文件和目录具有全权,而普通用户的权限是有限的。

YuanWent 3889

【unity游戏开发入门到精通——UGUI】UI控件 —— Image图像控件

【unity游戏开发入门到精通——UGUI】UI控件 —— Image图像控件

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2357

通用、可复用的 AI Skill 开发基本流程

-----name:唯一标识符(建议用领域-功能格式):自然语言描述触发条件(AI 依赖此判断是否激活)tags(可选):便于分类和搜索version:支持后续迭代步骤输出物1. 定范围触发场景描述2. 写元数据name3. 填内容结构化 Markdown 文件4. 做验证可运行 + 符合规范5. 去集成放入对应 IDE 目录6. 持续维护跟进框架更新通过这套流程,你不仅可以开发(Hooks 最佳实践)(原生 WebGL 优化)(Pandas/Numpy 高效写法)

lpfasd123的博客 730

用程序打印字符画

编写代码时间长了,满屏幕的字符看着有些枯燥,如果能在字符中出现一幅画,应该能增加一些趣味,使屏幕看起来不那么枯燥。于是百度了一下,发现知乎上有个问题https://www.zhihu.com/question/38638731/answer/132069108,回答的有道理,但用matlab,这个目前还不大了解,于是决定用Java实现一个。1.首先提取图片的RGB值,代码参考优快云一位作者,ht...

ximen250的专栏 2643

【医学图像处理】X-ray成像之X射线的产生

【医学图像处理】X-ray成像之X射线的产生 概述 电流流过钨丝,并将其加热。 随着加热,增加的能量使电子能够通过热电子发射从灯丝中释放出来。 电子被吸引到带正电的阳极,并以由管电位(电压)确定的最大能量撞击钨靶。 当电子轰击目标时,它们通过轫致辐射和特有的相互作用将能量转换为热量(99%)和X射线光子(1%)。 X射线光子以一束能量(X射线光谱)从光束中释放出来,构成X射线图像形成的基础。 设备 阴极 灯丝 用细的(0.2毫米)钨丝制成,因为钨: 原子序数高(A 184,Z 74) 是良好的热

ZhangPY的专栏 2358

ubuntu启动字符图形界面设置

ubuntu启动字符图形界面设置 字符 sudo systemctl set-default multi-user.target 图形 sudo systemctl set-default graphical.target

gwh1010的博客 477

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

linux终端字符串转字符画

概述: 将字符串(非图像)转换成字符画,效果如图: __ __ ___ ______________ _____ _____/ /_ ___ _____/ /__ / _ \/ ___/ ___/ __ \/ ___/ / ___/ __ \/ _ \/ ___/ //_/ / ...

zhengyajun_email的博客 2708

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Linux(Ubuntu)--在终端(命令行)中用字符显示图片——cacaview

让我们先看一下效果图吧 首先我们要先安装一下cacaview 命令如下: sudo apt install caca-utils 安装完成后执行: cacaview 1.jpg 回车!!!,一张字符组成的图片就显示出来了 还可以通过按g/G来调整图片的深浅,按d改变图片Dither,来达到最好的显示效果  ...

白菜先森 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【Linux】- 六个超赞的字符画生成器

ASCII是一个非常吸引人的字符编码系统,在计算机,通讯设备,以及其他设备中,通过它来用代码表示字符。新生代的人可能会觉得它已经过时了,但是那些熟悉它的人会懂得ASCII是多么的独特。我们在这里为你准备了五个超赞的ASCII字符艺术生成器。 1 GlassGiant ASCII Art GlassGiant ASCII Art可以把图片转换成ASCII字符艺术-一堆胡乱堆在一起的文字,数字...

weixin_30367945的博客 2956

图片转换成字符图

图片转换成字符图

Darren的博客 1万+

Python3 & OpenCV 视频转字符动画

Python3 & OpenCV 视频转字符动画 一、实验简介 1.1. 知识点 OpenCV 编译使用 OpenCV 处理图片、视频图片转字符画原理守护线程光标定位转义编码 1.2. 效果展示 (由于是在线环境,流畅度是不及本地环境的) 播放停止后的效果,注意终端中并无残留的动画字符: 二、实验步骤 2.1. 编译安装 OpenCV

oxuzhenyi的博客 10000

图片处理成字符组成的图

  目录 一、环境配置 1.安装notepad++ 2.安装python3.7 3.安装PIL(在Python3.7叫Pillow) 3.1先更新(或重新安装)一下pip 3.2然后安装Pillow(py图像处理库,包名开头是大写注意) 4.配置notepad++运行调试环境 5.使用notepad++的一些建议 5.1由于python不认tab符所以设置成按tab间的制表符换...

欢迎来到别往的博客 6075

ubuntu操作系统由图形界面转到字符界面

    ubuntu版本的linux操作系统和一般的操作系统不同,由于它没有/etc/inittab文件所以不能通过修  改/etc/inittab的值进行图形界面与字符界面之间的相互转化。在ubuntu版本的操作系统中要由图形界 面转换到字界面可以通过下面四步实现:1. 建立文件/etc/initta: sudo touch  /etc/inittab  

张中峰的专栏 1815

Ubuntu 14.04升级到Ubuntu 16.04(桌面版和字符版)

下面记录了从Ubuntu 14.04/15.10升级到Ubuntu 16.04的步骤。 在升级系统之前,我们先更新一下系统。打开终端执行如下命令:$ sudo apt-get update $ sudo apt-get dist-upgrade上面命令会下载安装最新的内核和软件包。重启系统完成安装:$ sudo reboot 执行如下命令打开更新管理器:$ sudo update-manage

kismile 1万+

安装Linux命令aview——图片转ASCII码命令

前几天在微信上看见aview这个命令挺好玩儿的,就想在自己的CentOS虚拟机上安装一个,网上搜了一个教程,然后就开始了作死的安装:(注:大神的原文地址 -> http://blog.youkuaiyun.com/exbob/article/details/7321903) 1.通过wget命令下载aalib,安装时由于还需要安装gcc和libtool(后面两个可以直接用yum install ×××来

Ai_要坦荡荡 1万+

三种图片转字符方式效率的比较

场景 我想通过json传输图片, 那么必须把图片转为string格式. 一般都是img-&amp;amp;amp;gt;byte-&amp;amp;amp;gt;string-&amp;amp;amp;gt;byte-&amp;amp;amp;gt;img的流程 三种方式的实现与比较 import base64 from time import time img_input = open(&amp;amp;quot;input.jpeg&amp;amp;qu

tianluo6010的博客 1121

Ubuntu字符界面简单使用

1、清屏命令: clear reset 2、超级用户和普通用户切换: 进入超级用户:sudo su 进入普通用户:su 用户名 3、运行级别切换: 查看:runlevel 切换: init 0 关机 init 1 单用户模式 init 2 多用户,没有NFS不联网 init 3 切换到字符界面 init 4 没有用到 init 5 切换到桌面系统 init 6 重启 输入用户名及密码即可进入字符界面(密码不显示,直接输入回车即可)(注意:如果...

m0_62404144的博客 1988

Python Matplotlib中坐标轴标题中各种特殊符号的显示 转义字符全集,编写数学表达式

Matplotlib中文显示问题——用例子说明问题 #-*- coding: utf-8 -*- from pylab import * t = arange(-4*pi, 4*pi, 0.01) y = sin(t)/t plt.plot(t, y) plt.title('test') plt.xlabel(u'\u2103',fontproperties='SimHei') #...

lqv587ss的博客 4万+
上一篇: 乌班图 python实战项目:《釜山行》人物关系可视化
下一篇: 2020.03.10
SCARLETT_one
博客等级 码龄8年 4粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值