Python实现为图像添加下雪特效
作者:顾木子吖 发布时间:2021-07-10 11:28:45
标签:Python,雪,特效
导语
也许是为了和音,在立冬这一天的人间里
北方多个城市,悄然降下冬天的第一场初雪,组成了一段旋律💨
一天过两季,黄叶转飞花——从天而降落,昼夜不停,一夜醒来,阁檐染白,故宫完成秋冬交接,
来自北方的故事纷纷踏雪而来。
琼楼银装,粉饰玉砌,不觉恍入天上仙境,宫墙内宾客如云,宫墙外车水马龙,若把故宫作天宫,
整夜冬天不觉冷。(可以穿秋裤了.jpg)
(本文的部分素材是在北京故宫的朋友,今天游玩刚拍出来的哈——新鲜出炉
今天直接来几组关于【故宫,下雪了!】给我们南方的小伙伴儿近距离看下故宫雪景图~希望大家喜欢!
你去过故宫吗?如果没去过那跟着小编一起走进北京故宫的初雪吧~(我没看过,只能看图)
无论南北 无论男女 无论你是否见过雪,我们似乎都共同喜欢着她,大抵因为在漫长的冰冷时节中
她是老天给予人间的惊喜意外,就像漫天黑夜里的繁星,像狂风暴风雨后的彩虹。
一、故宫下雪了:界面小程序
1)附主程序
# 初始化pygame
pygame.init()
# 根据背景图片的大小,设置屏幕长宽
SIZE = (850, 560)
screen = pygame.display.set_mode(SIZE)
pygame.display.set_caption("故宫下雪了——小程序")
bg = pygame.image.load('snow.jpg')
# 雪花列表
snow_list = []
# 初始化雪花:[x坐标, y坐标, x轴速度, y轴速度]
for i in range(200):
x = random.randrange(0, SIZE[0])
y = random.randrange(0, SIZE[1])
sx = random.randint(-1, 1)
sy = random.randint(3, 6)
snow_list.append([x, y, sx, sy])
clock = pygame.time.Clock()
# 游戏主循环
done = False
while not done:
# 消息事件循环,判断退出
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
# 黑背景/图片背景
# screen.fill((0, 0, 0))
screen.blit(bg, (0, 0))
# 雪花列表循环
for i in range(len(snow_list)):
# 绘制雪花,颜色、位置、大小
pygame.draw.circle(screen, (255, 255, 255), snow_list[i][:2], snow_list[i][3]-3)
# 移动雪花位置(下一次循环起效)
snow_list[i][0] += snow_list[i][2]
snow_list[i][1] += snow_list[i][3]
# 如果雪花落出屏幕,重设位置
if snow_list[i][1] > SIZE[1]:
snow_list[i][1] = random.randrange(-50, -10)
snow_list[i][0] = random.randrange(0, SIZE[0])
# 刷新屏幕
pygame.display.flip()
clock.tick(20)
2)效果展示
Part 01 展示——
Part 02 展示——
二、故宫下雪了:手绘素描
1)主程序
root = tkinter.Tk().withdraw()
filename = tkinter.filedialog.askopenfilename() # 打开选择文件对话框
try:
depth = 30 # 0-100,越高,颜色越深
picture_grad = np.gradient(np.asarray(Image.open(filename).convert('L')).astype('int')) # 取图像灰度的梯度值
grad_x, grad_y = picture_grad[0] * depth / 100., picture_grad[1] * depth / 100. # 将获取的维度梯度值进行深度处理
base = np.sqrt(grad_x ** 2 + grad_y ** 2 + 1.) # 降噪基
_x, _y, _z = grad_x / base, grad_y / base, 1. / base
sce_z, sce_x = np.pi / 2.1, np.pi / 3 # 光源的俯视角度值和方位角度值
# 光源对x,y,z 轴的影响
dx, dy, dz = np.cos(sce_z) * np.cos(sce_x), np.cos(sce_z) * np.sin(sce_x), np.sin(sce_z)
Normalized = 255 * (dx * _x + dy * _y + dz * _z).clip(0, 255) # 光源归一化
im = Image.fromarray(Normalized.astype('uint8')) # 重构图像
im.save('转换后的素描图.jpg') # 保存转换后的图片
im.show() # 展示转换后的图片
except Exception:
print('转换失败!')
2)效果展示
Part 01 展示——
Part 02 展示——
来源:https://blog.csdn.net/weixin_55822277/article/details/121226392


猜你喜欢
- 描述 写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字母,然后输出输入字符串中该字母的出现次数。不区分大小写,字符串长度小于5
- Pandas提供了duplicated、Index.duplicated、drop_duplicates函数来标记及删除重复记录duplic
- 废话不多说,直接上代码吧!/** * 函数防抖 (只执行最后一次点击) * @param fn * @param delay * @retu
- 回表查询InnoDB索引分为两大类,一类是聚集索引(Clustered Index),一类是非聚集索引(Secondary Index)聚集
- 1,创建测试表CREATE TABLE `testsign` ( `userid` int(5) DEFAULT NULL, `user
- MySQL5.7版本开始支持JSON格式,在创建表时,可以指定列表的数据类型为JSON,但是如何在JSON格式上创建索引呢??本人做了一个简
- php中可以把函数名通过字符串的方式传递给一个变量,然后通过此变量动态调用函数下面是一个简单的动态函数调用范例<html><
- 问题描述在做矩阵数据的归一化处理时,遇到个报错:ValueError: operands could not be broadcast to
- CSS 和 JavaScript 的压缩已经很成熟,各大网站都在使用。HTML 的压缩(特指去除空白字符和注释),除了 Google 等搜索
- 减少HTTP请求,是可以提高网站速度的,把所有的背景图像都放到一个图片文件中,然后通过CSS的background-image和backgr
- Mac 安装Mysql有许多开发的小伙伴,使用的是mac,那么在mac上如何安装Mysql呢?这篇文章就给大家说说。1、首先,登陆Mysql
- 比如 <div><img .../></div>想通过对这个div设置透明度来达到调整图片的透明度如果不
- Microsoft SQL Server错误: 15138删除对于用户失败,数据库主体在该数据库中拥有架构,无法删除解决方法一先删除此用户对
- 本文实例讲述了php获取客户端IP及URL的方法。分享给大家供大家参考,具体如下:function getonlineip(){//获取用户
- 考察对于知识的理解,除了实际的代码运用,还有一种方法就是问答类的题型。不同于普通的概念叙述,小编认为即使是面试题也会带有一些数学题目的影响,
- 在数据传递时,需要先编解码;常用的方式是JSON编解码(参见《golang之JSON处理》)。但有时却需要读取部分字段后,才能知道具体类型,
- 很早前就遇到这个空值的属性,它既出现在 html 文档中,也出现在 xml 中,一直都回避,放之任之,反正也不影响文档的正确性。隐隐约约过了
- 本文为大家分享了pygame游戏之旅的第3篇,供大家参考,具体内容如下载入car图片(我自己画的),需要用到pygame.image模块,定
- 今天抽空学习了一下之前了解过的pillow库,以前看到的记得这个库可以给图片上加文字加数字,还可以将图片转化成字符画,不过一直没有找时间去学
- 简介Python免费调用百度AI实现图片上面的文字识别步骤安装百度AI库!pip install baidu-aip注册百度AI开放平台先注