如何用Python敲出樱花绽放?(附源码)

2023-11-05 17:59

本文主要是介绍如何用Python敲出樱花绽放?(附源码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

↑ 关注 + 置顶 ~ 别错过小z的有趣内容

 

| 参考:武大微博

| 整理:凹凸数据

今年的武汉大学没有了往年的人山人海,但是美丽的樱花依然在春天里独自绽放。

(图源武汉大学微博)

为此,武大开通了#樱花云直播# ,3月16日-3月25日,每天 10:00-16:00。相约武大官博,每天看不同地点的樱花

同时武大信管院的朱永春同学,用python敲出樱花开放,引发热搜。

效果见下图视频:

武大微博后来还开源了代码:

这样我们也能在自己的电脑上实现樱花开放全过程????

<<  滑动查看下一张图片  >>

图中cv_2、cv_3、cv_4依次执行即可

再来讲讲此处的原理(引用自 Python编程时光)。

事实上,每一张图片都是由一个一个的像素点所组成的。而每个像素点,都有自己的颜色,其颜色可以用一个数组来表示:(a,b,c),其中每位数的取值范围都是 0-255。

比如(0,0,0)代表黑色,(255,255,255)代表白色。

当像素点足够多的时候,这张照片就是我们所说的高清照片。

而如果当像素点太少,我们的肉眼就能感知到明显的锯齿感。

首先,使用 opencv 的 cv2.imwrite() 函数读写,再保存为’.jpeg’后缀的图像

cv2.imwrite("pic/frame%d.jpg" % count, image)  # save frame as JPEG file

新建一张画布,再选择字体和字体大小。

blank = Image.new("RGB", [len(img[0]), len(img)], "white")
drawObj = ImageDraw.Draw(blank)n = 10font = ImageFont.truetype('C:/Windows/Fonts/Microsoft YaHei UI/msyhbd.ttc', size=n - 1)

写个for循环生成数据,要给这些字加上相应的颜色字体,写入创建的画布中。

for i in range(0, len(img), n):for j in range(0, len(img[i]), n):text = '武汉加油'drawObj.ink = img[i][j][0] + img[i][j][1] * 256 + img[i][j][2] * 256 * 256drawObj.text([j, i], text[int(j / n) % len(text)], font=font)print('完成处理——', i, j)blank.save('new/new_' + pic, 'jpeg')

最后将图片写进视频,导出即可。

def picvideo(path, size):# path = r'C:\Users\Administrator\Desktop\1\huaixiao\\'#文件路径filelist = os.listdir(path)  # 获取该目录下的所有文件名filelist = resort(filelist)'''fps:帧率:1秒钟有n张图片写进去[控制一张图片停留5秒钟,那就是帧率为1,重复播放这张图片5次]如果文件夹下有50张 534*300的图片,这里设置1秒钟播放5张,那么这个视频的时长就是10秒'''fps = 24# size = (591,705) #图片的分辨率片file_path = 'video/new.mp4'  # 导出路径fourcc = cv2.VideoWriter_fourcc('D', 'I', 'V', 'X')  # 不同视频编码对应不同视频格式(例:'I','4','2','0' 对应avi格式)video = cv2.VideoWriter(file_path, fourcc, fps, size)for item in filelist:if item.endswith('.jpg'):  # 判断图片后缀是否是.pngitem = path + '/' + itemimg = cv2.imread(item)  # 使用opencv读取图像,直接返回numpy.ndarray 对象,通道顺序为BGR ,注意是BGR,通道值默认范围0-255。video.write(img)  # 把图片写进视频video.release()  # 释放

代码千万行,爱你当首行!

无数个“武汉加油”汇聚在一起,每个字都是一个像素点,为你敲出一朵樱花的延时开放????

看一朵花开,等花开成海,和武大樱花一起为武汉加油!

  • 整理:朱小五,公众号「凹凸数据」

  • 参考来源:

    武大微博 https://m.weibo.cn/status/4483892952561309?

    Python编程时光:《情人节来了,教你个用 Python 表白的技巧》


延伸阅读
    同同同期群分析到底是个啥?    Pandas熟练?进来测测这50道题吧!    实战解读:数据分析,如何更进一步?
数据不吹牛读者群已经建立,后台回复“入群”,即可加入有趣讨论,交流数据干货

“有点意思”

这篇关于如何用Python敲出樱花绽放?(附源码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/351542

相关文章

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

基于Python实现高效PPT转图片工具

《基于Python实现高效PPT转图片工具》在日常工作中,PPT是我们常用的演示工具,但有时候我们需要将PPT的内容提取为图片格式以便于展示或保存,所以本文将用Python实现PPT转PNG工具,希望... 目录1. 概述2. 功能使用2.1 安装依赖2.2 使用步骤2.3 代码实现2.4 GUI界面3.效

Python获取C++中返回的char*字段的两种思路

《Python获取C++中返回的char*字段的两种思路》有时候需要获取C++函数中返回来的不定长的char*字符串,本文小编为大家找到了两种解决问题的思路,感兴趣的小伙伴可以跟随小编一起学习一下... 有时候需要获取C++函数中返回来的不定长的char*字符串,目前我找到两种解决问题的思路,具体实现如下:

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解

Python Faker库基本用法详解

《PythonFaker库基本用法详解》Faker是一个非常强大的库,适用于生成各种类型的伪随机数据,可以帮助开发者在测试、数据生成、或其他需要随机数据的场景中提高效率,本文给大家介绍PythonF... 目录安装基本用法主要功能示例代码语言和地区生成多条假数据自定义字段小结Faker 是一个 python

Python实现AVIF图片与其他图片格式间的批量转换

《Python实现AVIF图片与其他图片格式间的批量转换》这篇文章主要为大家详细介绍了如何使用Pillow库实现AVIF与其他格式的相互转换,即将AVIF转换为常见的格式,比如JPG或PNG,需要的小... 目录环境配置1.将单个 AVIF 图片转换为 JPG 和 PNG2.批量转换目录下所有 AVIF 图