专栏名称: 吴师兄学算法
和程序员小吴一起从初学者的角度学习算法,以动画的形式呈现解题的思路。每周四篇原创文章,期待你的鉴赏!
目录
相关文章推荐
丁香园  ·  国家药监局原副局长陈时飞被查 ·  昨天  
肿瘤资讯  ·  【前沿进展】揭示新机制:YAP介导HER3信 ... ·  3 天前  
丁香园  ·  时隔 10 ... ·  2 天前  
51好读  ›  专栏  ›  吴师兄学算法

火爆全网!这个 Python 项目很骚气!

吴师兄学算法  · 公众号  ·  · 2020-03-30 12:15

正文

点击上方“ 五分钟学算法 ”,选择设为“ 设为星标

优质文章,第一时间送达!



本文转自量子位,作者郭一璞
像文字云一样,用各种小图拼出大的图片,构建一个像素风的世界,就像《我的世界》里一样,一定非常有趣。
还可以拿来做拼贴画、十字绣等装饰。
在这个名为 tiler 的 GitHub 开源项目里你就可以自动实现这一切,它刚刚开源一天,就已经涨到了 1500 星,增长速度肉眼可见。
https://github.com/nuno-faria/tiler
Tiler,意味瓦工,也就是用各种小元素作为 “瓦”,搭建出一张大图片。
项目预设了不少 “瓦”:有乐高、加号、圆形、@符号、心形、乘号、波浪线、横竖条、《我的世界》中的各种格子,以及曲别针形:
另外还有一组万圣节主题 icon,包括各种南瓜灯、小鬼头、蝙蝠、猫头鹰:
这些不同的 “瓦” 都可以设定大小颜色和角度,以适应不同的画面规格。
另外,你还可以设定整个画面中由多少种颜色构成和 “瓦片” 的大小,也就是马赛克的模糊程度。
你可以用不同材质的 “瓦片”,拼接出各种图案。
比如梵高的《星空》,项目中展示了 10×10、25×25、50×50 三种圆形拼成的规格:
10×10 的《星空》
25×25 的《星空》
50×50 的《星空》
有没有在 PS 里拖动高斯模糊半径控制条的感觉?
你也可以设置让构成图片的 “瓦片” 大小不一
也可以试试拿乐高积木来拼:
放大看,斑斓的星空,是这样的:
一个个小砖块,布满了乐高积木表面特有的圆形凸起。
嗯,要是真有这么大一片乐高,想想就爽歪歪。
(此处冲去乐高门店下单,金币 - 1000)
还有乘号版:
如果放大,你就会发现,这就是十字绣的图样啊!
这么大一副十字绣,色彩艳丽,斑斓交错,一看就可以玩很久,退休老母亲看到两眼发光。
就是绣完挂在家里,也和你北欧风 / 极简风 / 莫兰迪风 / 自如风的房间非常搭配,成为全场最吸睛的装饰画。
要是木有耐心,可以考虑一个迷你版:
还可以做成《我的世界》的样子
星空的细节如下:
你们能认识这些砖块都是啥么……

运行指南

如果想在自己电脑上运行的话,除了 Python 3 和 pip,你还需要装 OpenCV、numpy 和 tqdm。
之后,靠命令行就可以解决了。
你需要设置几个参数:
在 gen_tiles.py 中设置:
  • DEPTH :每个颜色通道中的分割数量 (ex: DEPTH = 4 -> 4 * 4 * 4 = 64 colors);

  • ROTATIONS :旋转列表,以度为单位,应用在原始图像上 (ex: [0, 90])。


在 tiler.py 中设置:
  • COLOR_DEPTH :每个颜色通道中的分割数量 (ex: COLOR_DEPTH = 4 -> 4 4 4 = 64 colors);

  • RESIZING_SCALES :应用于每个图块的比例 (ex: [1, 0.75, 0.5, 0.25]);

  • PIXEL_SHIFT :移动以创建每个框的像素数 (ex: (5,5)); if None, shift will be the same as the tile dimension);



  • OVERLAP_TILES :如果构成图像的 “瓦片” 可以重叠;

  • RENDER :渲染图像;

  • POOL_SIZE







请到「今天看啥」查看全文