实现“一户一墩”,教你用Python画一个冰墩墩

架构进化论

共 2139字,需浏览 5分钟

 ·

2022-02-11 07:13


这两天,冬奥会的吉祥物“冰墩墩”可是火出了圈,说好的“一户一墩,实际却是一墩难求,今天早晨还看到朋友圈里有朋友五点就去排队了。


今天来个轻松的,教大家用Python画一个绝对可爱的冰墩墩,代码太长,只展示部分,可以在后台留言"冰墩墩"获取完整内容。



关于Turtle 库

Turtle库是Python中的一个绘制图像的函数库,turtle就是一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制图形。


绘图版冰墩墩

1、打开编辑器,创建一个BingDwenDwen.py文件,需要逐个坐标进行描绘,只展示一部分代码:


# 调节绘制速度t.speed(10) 
# 左手t.penup()t.goto(177, 112)
...


# 五环t.penup()t.goto(-5, -170)t.pendown()t.pencolor("blue")t.circle(6)
t.pencolor("black")t.goto(-16, -160)# 冬奥会说明t.write("BEIJING 2022", font=('Arial', 10, 'bold italic'))t.hideturtle()



2、执行程序:

python BingDwenDwen.py


3、成功!



图像识别版冰墩墩

Turtle是一个非常好用的自动绘图工具库,但是用它来画图需要提供大量的坐标点,需要反复的执行,代码非常冗长,适合一些简单的图像描绘。


下面我们用计算机图像识别,来自动获取图片的位置坐标帮助进行画图,复制一个更加高清的冰墩墩。


首先你需要一张冰墩墩的图片,命名为bingdwendwen.png,和python代码在同一个目录下。




下面需要使用open-cv的库,以下步骤如果你的机器已经安装可以跳过:


1、安装pip程序库

如果你还未安装pip,则可以使用以下方法来安装,以下针对Mac系统,Windows系统可以搜索下相关命令:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py  # 下载安装脚本$ sudo python get-pip.py    # 运行安装脚本


注意:用哪个版本的 Python 运行安装脚本,pip 就被关联到哪个版本,如果是 Python3 则执行以下命令:

$ sudo python3 get-pip.py    # 运行安装脚本


一般情况 pip 对应的是 Python 2.7,pip3 对应的是 Python 3.x。


2、安装opencv-python库

opencv-python是一个图像和视频处理库,官网如下 https://pypi.org/project/opencv-python/


可以在terminal输入下面代码直接安装:

$  pip install opencv-python


命令行下使用pydoc命令查看安装的Module:
在命令行下运行$ pydoc modules 即可查看。



3、添加代码并且运行

import turtle as timport cv2
t.title('BingDwenDwen_CV 公众号:越哥聊IT')t.getscreen().colormode(255)# 调用opencv读取并创建灰度图像,按BGR顺序img = cv2.imread("bingdwendwen.png")[0: -2: 2]width = len(img[0])height = len(img)t.setup(width=width / 2 + 100, height=height + 100)t.pu()t.goto(-width / 4 + 10, height / 2 - 10)t.pd()t.tracer(2000)for k1, i in enumerate(img): for j in i[::2]: t.pencolor((j[0], j[1], j[2])) t.fd(1) t.pu() t.goto(-width / 4 + 10, height / 2 - 10 - k1 - 1) t.pd()t.done()


这个代码实际是读取图片,然后把坐标数据传递给Turtle,下面执行程序:

python BingDwenDwen_cv.py



获取代码:

需要代码,可以在后台留言"冰墩墩",会自动发送代码文件。



大家都在看:

电商广告营销的常见公式和优化手段

金三银四:如何更高效的准备面试

新年如何精进:我的读书和写作计划

看完张一鸣近十年的微博,我总结了这些观点

模型第一性,商品和类目体系拆解

复杂业务系统的架构设计思路

IT人士必知,互联网常见商业模式

题图来自 Unsplash,基于 CC0 协议使用


浏览 105
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报