Python图像处理——图片转黑白,字符画,手绘风
实现原理
用PIL,一个强大的python图像处理库。主要用到了Image。
终端下载命令:
pip install pillow
代码
自己在东方明珠上拍到的黄浦江是多么美丽!但想到这里就回忆起儿时画风景画苦不堪言的感觉,心想一定要写个程序帮自己完成美术作业。
图片转黑白
最简单的一步,就是把彩色图片转为黑白图片。
from PIL import Image #导入PIL库
d = input("Img Directory:") #输入要处理的图片路径
img = Image.open(d).convert('LA') #直接处理
img.save('greyscale.png') #保存图片
怎么样?是不是很简单?
用了自己在东方明珠上拍到的黄浦江,下面是效果图:
图片转ascii
会了简单的转黑白,试试更难的转ascii字符画。代码如下:
from PIL import Image #导入PIL
#生成ascii图的宽度和高度。建议和原图比例类似。
WIDTH = 300
HEIGHT = 200
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") #字符DPI(Dots Per Inch,每英寸点数)从高到低排序
#把彩色图转化为灰度图,然后将256个灰度映射到70个字符上
def get_char(r, g, b, alpha=256): #R红G绿B蓝A透明度
if alpha == 0: #空白像素返回空格
return ' '
length = len(ascii_char) #
gray = int(r*0.299 + g*0.587 + b*0.114) #计算灰度,3:6:1是比较靠谱的
unit = (256.0+1)/length
return ascii_char[int(gray/unit)</