专栏首页庄闪闪的R语言手册R可视乎|创建乐高版马赛克图

R可视乎|创建乐高版马赛克图

简介

今日内容比较“无用”,觉得比较好玩,所以就做一期“异类”可视化啦!主要介绍下 brickr[1] 包,它将乐高(LEGO) 带入 R 和 tidyverse 生态系统中,该包分为2个部分:

  • Mosaics(马赛克)[2]:将图像转换为乐高积木的马赛克图像。
  • 3D 模型[3]:使用 rgl 包,通过数据表构建 3D 乐高模型。

今天这一期主要介绍第一个部分:

马赛克

首先读取 PNG 或 JPEG 图像,然后使用 image_to_mosaicbuild_mosaic 函数 构建成乐高版本的马赛克图。下面给出一个官方的例子:

# install.packages("brickr")
library(brickr)
# install.packages("png")
library(png)

# 图像获取
img <- tempfile()
download.file("https://r-charts.com/images/favicon.png",
              img, mode = "wb")

# 创建LEGO版本的mosaic图
readPNG(img) %>%
  image_to_mosaic() %>%
  build_mosaic()

如果未安装该包,可使用install.packages("brickr")进行安装。这里readPNG()来自 png 包,记得也要提前安装。

这里是先建立一个临时文件 img,然后将网上的一张图下载下来,并存储到 img 中。之后读取图像和转化为马赛克数据,最后构建成马赛克图。

当然,如果你可以加载本地的图像,例如,小编将自己公众号的头像进行上传演示:

readPNG("avatar.png") %>%
  image_to_mosaic() %>%
  build_mosaic()

得到的图形如下:

image_to_mosaic()内部包含了一些重要的参数,详细介绍可见 ?image_to_mosaic()。这里主要修改 img_size 参数来调整图片尺寸,当是一个值时,表示创建一个正方形图像,如果是两个值c(56,48)则表示创建长为 56,宽为48的长方形图像。数值越大,像素越高,乐高版本的马赛克越密集,例如当img_size = 120时,得到的结果:

感觉拿来当头像也很好呀!如果想通过该功能制作头像,记得背景最好纯色,这样效果更佳。如果照片不是 png 格式,可以通过这个网站[4]转化为 png 格式,再导入。

介绍构建过程

你可以使用 build_instructions 介绍你这个图构建的过程,默认是 6 步骤,例如官网例子:

library(brickr)
library(png)

# Get the image
img <- tempfile()
download.file("https://r-charts.com/images/favicon.png",
              img, mode = "wb")

# Create the LEGO instructions
readPNG(img) %>%
  image_to_mosaic() %>%
  build_instructions()

我将其应用到推文:R可视乎|用R给心仪的对象表白吧 图形,这时得到的表白爱心构建步骤如下:

是不是还挺 Romantic 的👻

使用乐高的材料

你可以通过 build_pieces 函数,告诉大家这个图使用了哪些颜色,形状的乐高材料。例如,官网例子:

library(brickr)
library(png)

# Get the image
img <- tempfile()
download.file("https://r-charts.com/images/favicon.png",
              img, mode = "wb")

# List of LEGO pieces
readPNG(img) %>%
  image_to_mosaic() %>%
  build_pieces()

小编有话说

  • 今天主要介绍 brickr 包一部分功能,主要是讲了三个函数的使用以及解释得到图片的结果,具体可见这篇教程[5]
  • 小编觉得这个包确实很有趣,你可以将自己的头像上传转化成马赛克图作为头像,这不挺酷的吗?哈哈。
  • 下一期会介绍这个包的另一个功能,搭三维的马赛克图!

参考资料

[1]

brickr: http://brickr.org/index.html

[2]

Mosaics(马赛克): http://brickr.org/index.html#mosaics

[3]

3D模型: http://brickr.org/index.html#3d-models

[4]

网站: https://jpg2png.com/

[5]

教程: https://r-charts.com/miscellaneous/brickr/

本文分享自微信公众号 - 庄闪闪的R语言手册(Zss_R4ds),作者:庄闪闪

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-09-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • R可视乎|马赛克图

    马赛克图(mosaic plot),显示分类数据中一对变量之间的关系,原理类似双向的100%堆叠式条形图,但其中所有条形在数值/标尺轴上具有相等长度,并会被划分...

    庄闪闪
  • 日本神秘男子开发可自动去码AI,能“伪造”性器,震动业界

    马赛克是常见且广泛应用的图像/视频处理方式,它能将图像/视频中某些特定区域的色阶细节劣化,并将区域内色块打乱。这样看起来打码的地方就像是一个个小方格组成的,人们...

    大数据文摘
  • 基于 Go 协程实现图片马赛克应用(上):同步版本

    介绍完 Go 并发编程基础和常见并发模式的实现后,我们来看一个完整的项目 —— 基于 Go 语言实现照片马赛克功能,为了对比并发与非并发的性能差异,我们先通过同...

    学院君
  • 一周简报|高德地图发布AI引擎,可应对各种复杂环境

    高德地图发布AI引擎,可应对各种复杂环境;开源软件Torch神奇功能:可还原马赛克;友盟+推出第三方广告效果监测工具U-ADplus;网易易盾正式发布,以人工智...

    BestSDK
  • 刚刚,马斯克再次喜当爹!音乐家女友Grimes给他生了一个「小钢铁侠」

    北京时间今早8点多,马斯克在推特上向他的3300万粉丝宣布:马斯克和Grimes的孩子出生了!

    新智元
  • Linux实践 - 创建用户

    PS: 记不住ip,所以在个人电脑的hosts文件中设置了个别名,因为用的腾讯云服务器,就叫qqcloud。

    acupt
  • 响铃:人人争抢的体育内容,PPTV智能电视玩出了什么新花样

    这一是政策的东风,作为一个体育大国,数据显示在2015年我国体育产业规模总产值就已达1.7万亿元。在“体育产业十三五规划”中更是明确提出“2020年实现体育及相...

    曾响铃
  • 揭秘谷歌无人驾驶的幕后功臣

    美国电子和电气工程师协会(IEEE)旗下杂志《IEEE Spectrum》近日撰文,对谷歌无人驾驶汽车背后的无名英雄进行了详细介绍。以下为文章全文:幕后功臣 科...

    机器人网
  • 资讯速览|20 1221

    该公司还宣布,App Clip Codes (编码一个 URL 并可以合并一个 NFC 标签的视觉图像)现在也可以在 App Store Connect 或新的...

    LiveVideoStack
  • 悬赏1000万美元,打假AI换脸!Facebook发起Deepfakes检测挑战赛

    Facebook宣布了一项名为Deepfake Detection Challenge(DFDC)的挑战赛,壕掷1000万美元,悬赏能够最好地检测出利用Deep...

    新智元
  • 当足球遭遇大数据,胜负靠计算还是直觉

    2013/14赛季英超联赛戏剧性地画上句号,如果说还有什么比最后一轮才决出冠军归属更让人跌破眼镜的,一定是卫冕冠军“红魔”曼联的快速衰落和名不见经传的埃弗顿异军...

    小莹莹
  • 体育这事,除了抢IP、赞助,就真不能干点其他啥了?

    这个周末一篇#小学生吐槽老爸看球#的作文在网上疯传,被人民网、中国经营报、三湘都市报 、晶报等转发后,相关话题也进入微博话题榜和百度风云榜,小学生作文中出现百度...

    曾响铃
  • 2017信息之美奖作品集 | 今年最好的可视化都在这里了

    大数据文摘
  • 80后,天才程序员, Facebook 第一任 CTO,看看开挂的人生到底有多变态?

    今天介绍一位天才程序员——亚当·德安格洛(Adam D'Angelo),他被《财富》杂志誉为“科技界最聪明的人之一”,大学去了被誉为"天才"摇篮的加州理工,毕业...

    龙哥
  • 马斯克开卖豪宅,2套4000万美元,还说要卖光所有房产

    Twitter上一通操作猛如虎,先说特斯拉股票过高,又说自己要卖光(几乎)所有房产。

    量子位
  • 13个大数据案例告诉你:大数据正在改变哪些行业?

    大数据目前是当下最火热的词了,你要是不知道大数据这个概念,都不好意思在众人面前开口了。然而实际上很多人都对大数据的应用模糊不清。现在就让我们从下面13个鲜明的大...

    钱塘数据
  • 战略收缩+裁员10%,乐视开始为过度扩张“买单”

    镁客网
  • 2018年世界杯助力优酷重返第一,也成为视频行业的分水岭

    伴随着优酷成为2018年世界杯央视官方新媒体合作伙伴,今年中国观众第一次可以在主流视频网看世界杯直播。世界杯助力优酷重返行业第一已无悬念,往大了说也成为阿里文娱...

    罗超频道
  • 响铃:人人争抢的体育赛事IP,真能上演一场商业好戏?

    随着移动设备的不断更新和传播媒介的升级迭代,人们对“内容”的需求也达到了前所未有的高度。从早年的网络文学,到后来的电视综艺和影视剧,如今又延伸到体育赛事。[原开...

    曾响铃

扫码关注云+社区

领取腾讯云代金券