python特效之字符成像详解

目录
  • 一、特效预览
  • 二、程序原理
  • 三、程序源码
  • 总结

一、特效预览

处理前

处理后

细节放大后

二、程序原理

  • 将图片所在的 256 的灰度映射到相应的字符上面
  • 也就是 RGB 值转成相应的字符
  • 然后再将字符其写入文件即可

你听懂了吗

三、程序源码

#!/usr/bin/env python
# encoding: utf-8
from PIL import Image
class charsetPicture:
    '''
     This is a main Class, the file contains all documents.
     One document contains paragraphs that have several sentences
     It loads the original file and converts the original file to new content
     Then the new content will be saved by this class
    '''
    def __init__(self):
        self.char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
        self.width = 160
        self.height = 60
    def hello(self):
        '''
        This is a welcome speech
        :return: self
        '''
        print('*' * 50)
        print(' ' * 18 + '图片转换为字符图片')
        print(' ' * 5 + 'Author: autofelix  Date: 2022-01-07 13:14')
        print('*' * 50)
        return self
    def get_char(self, r, g, b, alpha=256):
        '''
        将256灰度映射到70个字符上,也就是RGB值转字符的函数
        :alpha: 透明度
        :return: self
        '''
        if alpha == 0:
            return ' '
        length = len(self.char)
        gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
        unit = (256.0 + 1) / length
        return self.char[int(gray / unit)]
    def run(self):
        '''
        The program entry
        '''
        im = Image.open('assets/aaa.jpeg')
        im = im.resize((self.width, self.height), Image.NEAREST)
        txt = ''
        for i in range(self.height):
            for j in range(self.width):
                txt += self.get_char(*im.getpixel((j, i)))
            txt += '\n'
        print(txt)
        with open('handler.txt', 'w') as f:
            f.write(txt)
if __name__ == '__main__':
    charsetPicture().hello().run()

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

赞 (0)

相关推荐

  • Python图像特效之模糊玻璃效果

    今天介绍一种基于高斯滤波和邻域随机采样,生成一种毛玻璃的图像特效,简单来说,就是先对图像做高斯滤波模糊,然后对模糊后的图像,通过对邻域的随机采样来赋予当前的像素点,这样,生成的图像有有一定的随机扰动和模糊,看起来就像隔着一层毛玻璃在观察图像一样. # -*- coding: utf-8 -*- """ Created on Sun Aug 20 11:03:53 2017 @author: shiyi """ import matplotlib.

  • Python 实现PS滤镜中的径向模糊特效

    实现效果 实现代码 from skimage import img_as_float import matplotlib.pyplot as plt from skimage import io import numpy as np import numpy.matlib file_name='D:/2020121173119242.png' # 图片路径 img=io.imread(file_name) img = img_as_float(img) img_out = img.copy()

  • python 实现波浪滤镜特效

    本文用 Python 实现 PS 滤镜的波浪特效 import numpy as np from skimage import img_as_float import matplotlib.pyplot as plt from skimage import io import numpy.matlib import math # 图片位置 file_name2='D:/Visual Effects/PS Algorithm/4.jpg' img=io.imread(file_name2) img

  • Python 实现图像特效中的油画效果

    目录 一 基本原理 二 代码实现 三 总体实现代码以及保存  在前面的文章Python 计算机视觉(十五)-- 图像特效处理中我已经介绍了大部分的图像的特效处理,但还是忽略了油画特效的处理,在本篇文章中简单介绍一下油画特效的基本原理以及代码实现,感兴趣的小伙伴可以跟着码一遍代码,或者使用代码直接运行查看一下效果就行. 一 基本原理 如下面的两幅图所示,油画用对了地方会使得图像一下子显得文艺起来了呢! 拍出的图像 转化为油画 那么将一幅图像转化为油画类型的图案是怎么实现的呢?为了将一幅普通的图像转

  • Python 实现PS滤镜的旋涡特效

    实现效果: 实现代码 import numpy as np from skimage import img_as_float import matplotlib.pyplot as plt from skimage import io import math import numpy.matlib file_name2='D:/2020121173119242.png' # 图片路径 img=io.imread(file_name2) img = img_as_float(img) row, c

  • Python实现为图像添加下雪特效

    目录 导语 正文 一.故宫下雪了:界面小程序 1)附主程序 2)效果展示 二.故宫下雪了:手绘素描 1)主程序 2)效果展示 导语 也许是为了和音,在立冬这一天的人间里 北方多个城市,悄然降下冬天的第一场初雪,组成了一段旋律 一天过两季,黄叶转飞花--从天而降落,昼夜不停,一夜醒来,阁檐染白,故宫完成秋冬交接, 来自北方的故事纷纷踏雪而来. 琼楼银装,粉饰玉砌,不觉恍入天上仙境,宫墙内宾客如云,宫墙外车水马龙,若把故宫作天宫, 整夜冬天不觉冷.(可以穿秋裤了.jpg) (本文的部分素材是在北京故

  • python特效之字符成像详解

    目录 一.特效预览 二.程序原理 三.程序源码 总结 一.特效预览 处理前 处理后 细节放大后 二.程序原理 将图片所在的 256 的灰度映射到相应的字符上面 也就是 RGB 值转成相应的字符 然后再将字符其写入文件即可 你听懂了吗 三.程序源码 #!/usr/bin/env python # encoding: utf-8 from PIL import Image class charsetPicture: ''' This is a main Class, the file contain

  • Python特效之数字成像方法详解

    目录 一.特效预览 二.程序原理 三.程序源码 一.特效预览 处理前 处理后 细节放大后 二.程序原理 1.将图片转为灰白图片后,将图片分成了三块,明.暗.阴影区域 2.明区域使用空白进行填充 3.阴影区域使用横线进行填充 4.暗区域使用数字进行填充,通过对暗区域的像素进行分类,不同像素使用不同数字进行填充即可 三.程序源码 #!/usr/bin/env python # encoding: utf-8 import cv2 import random import numpy as np cl

  • Python特效之文字成像方法详解

    目录 一.特效预览 二.程序原理 三.程序源码 一.特效预览 处理前 处理后 细节放大后 二.程序原理 1.输入你想隐藏的文字 2.然后写到另一张跟照片同等大小的空白纸张上 3.将相同位置的文字的颜色用照片上相同位置的颜色填充即可 4.然后生成新的图片你听懂了吗 三.程序源码 #!/usr/bin/env python # encoding: utf-8 from PIL import Image, ImageDraw, ImageFont class wordPicture: ''' This

  • Python做简单的字符串匹配详解

    Python做简单的字符串匹配详解 由于需要在半结构化的文本数据中提取一些特定格式的字段.数据辅助挖掘分析工作,以往都是使用Matlab工具进行结构化数据处理的建模,matlab擅长矩阵处理.结构化数据的计算,Python具有与matlab共同的特点:语法简洁.库丰富,对算法仿真来说都是一门简洁易用的语言. Python做字符串匹配相对来说上手比较容易,且具有成熟的字符串处理库re供我们使用: 在re库的帮助下,只需简单的两步就可完成匹配工作,对做数据分析/算法的工作者来说,轻松了许多: ste

  • Python实现视频转换为字符画详解

    上次写了个华强买瓜字符视频的帖子,下面有人问如何保存,所以这次就写一个能将字符画视频保存下来的帖子,然而时不待我,华强纪元已经结束,现在是穿山甲的时代了. 首先读取视频,并转为字符.视频是从B站下载的,地址<激战江南>穿山甲名场面. 由于B站直接下载的视频为flv格式,而imageio并不支持,尽管可以用opencv来读取,但相比之下,用ffmepg转个码也不复杂,这样可以最大限度地利用华强买瓜的代码. 另外,视频素材过长不适合代码演示,所以从第2:10进行截取15s. 在命令行中输入 >

  • Python中八大图像特效算法的示例详解

    目录 0写在前面 1毛玻璃特效 2浮雕特效 3油画特效 4马赛克特效 5素描特效 6怀旧特效 7流年特效 8卡通特效 0 写在前面 图像特效处理是基于图像像素数据特征,将原图像进行一定步骤的计算——例如像素作差.灰度变换.颜色通道融合等,从而达到期望的效果.图像特效处理是日常生活中应用非常广泛的一种计算机视觉应用,出现在各种美图软件中,这些精美滤镜背后的数学原理都是相通的,本文主要介绍八大基本图像特效算法,在这些算法基础上可以进行二次开发,生成更高级的滤镜. 本文采用面向对象设计,定义了一个图像

  • Python探索之ModelForm代码详解

    这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来,对,你没猜错,相信自己的英语水平. 先来一个简单的例子来看一下这个东西怎么用: 比如我们的数据库中有这样一张学生表,字段有姓名,年龄,爱好,邮箱,电话,住址,注册时间等等一大堆信息,现在让你写一个创建学生的页面,你的后台应该怎么写呢? 首先我们会在前端一个一个罗列出这些字段,让用户去填写,然后我们从后天一个一个接收用户的输入,创建一个新的学生对象,保存 其实,重点不是这些,而是合法性验证,我们需要在前端

  • python模块之re正则表达式详解

    一.简单介绍 正则表达式是一种小型的.高度专业化的编程语言,并不是python中特有的,是许多编程语言中基础而又重要的一部分.在python中,主要通过re模块来实现. 正则表达式模式被编译成一系列的字节码,然后由用c编写的匹配引擎执行.那么正则表达式通常有哪些使用场景呢? 比如为想要匹配的相应字符串集指定规则: 该字符串集可以是包含e-mail地址.Internet地址.电话号码,或是根据需求自定义的一些字符串集: 当然也可以去判断一个字符串集是否符合我们定义的匹配规则: 找到字符串中匹配该规

  • Python 处理数据的实例详解

    Python 处理数据的实例详解 最近用python(3.2的版本)写了根据特定规则,处理数据的一个小程序,用到了一些python常用的基础知识,在此总结一下: 1,python读文件 2,python写文件 3,python的流程控制 4,python的for循环 5,python的集合,或字符串里判断是否存在某个元素 6,python的逻辑或,逻辑与 7,python的正则过滤 8,python的字符串忽略空格,和以某个字符串开头和按某个字符拆分成list python的打开文件的模式: 关

  • Python中格式化format()方法详解

     Python中格式化format()方法详解 Python中格式化输出字符串使用format()函数, 字符串即类, 可以使用方法; Python是完全面向对象的语言, 任何东西都是对象; 字符串的参数使用{NUM}进行表示,0, 表示第一个参数,1, 表示第二个参数, 以后顺次递加; 使用":", 指定代表元素需要的操作, 如":.3"小数点三位, ":8"占8个字符空间等; 还可以添加特定的字母, 如: 'b' - 二进制. 将数字以2为基

随机推荐