获取图片中的关键色彩 | 单细胞配色有救了

单细胞总是缺少合适的颜色组合。太浅了、太深了不好区分,太浓艳了看着扎眼。除了直接照搬别人sci中的优秀配色外,大自然鬼斧神工的照片也提供了很好的配色灵感,如果能自动化提取出关键颜色,做成大色块展示效果,供我们挑选,那就好极了,本文尝试给出R语言实现。

1. 颜色卡代码效果

(1).从大自然照片中获取颜色灵感

  getColorsFromPicture("D:\\Program Files (x86)\\EyeDefender\\scenery-49.jpg")
  getColorsFromPicture("D:\\Program Files (x86)\\EyeDefender\\scenery-46.jpg", k=10)
  getColorsFromPicture("D:\\Program Files (x86)\\EyeDefender\\scenery-56.jpg", k=8)

在这里插入图片描述
在这里插入图片描述

(1B) 3d展示 kmeans 颜色聚类效果

  # test 3d
  getColorsFromPicture("D:\\Program Files (x86)\\EyeDefender\\scenery-30.jpg", k=8)
  getColorsFromPicture("D:\\Program Files (x86)\\EyeDefender\\scenery-30.jpg", k=8, show="none")
  getColorsFromPicture("D:\\Program Files (x86)\\EyeDefender\\scenery-30.jpg", k=8, show="3d")
  getColorsFromPicture("D:\\Program Files (x86)\\EyeDefender\\scenery-30.jpg", k=8, show="3d", angle.3d=80)
  getColorsFromPicture("D:\\Program Files (x86)\\EyeDefender\\scenery-30.jpg", k=8, show="3dR", angle.3d=80)
  getColorsFromPicture("D:\\Program Files (x86)\\EyeDefender\\scenery-30.jpg", k=8, show="3di")
  getColorsFromPicture("D:\\Program Files (x86)\\EyeDefender\\scenery-30.jpg", k=8, show="3diR")

在这里插入图片描述
show参数:

  • 3d开头的是3d效果,
  • 带i的是交互式的,可鼠标拖动
  • 带R的展示的是真实色彩,否则展示的是kmeans聚类的代表色

(2). 从手绘示意图中获取颜色灵感

  getColorsFromPicture("C:\\Users\\DELL\\Pictures\\Biology\\Bone-marrow-stem-cell-differentiation.png", k=30)

在这里插入图片描述
输出是按照频率排序的,大块的颜色优先输出。比如第一列是白色。

(3). 从sci图片中获取颜色灵感

  getColorsFromPicture("C:\\Users\\DELL\\Pictures\\scRNA-seq\\Heatmap_cluster.png", k=40)

在这里插入图片描述

2. 不同颜色的颜色卡

赤橙黄绿蓝靛紫

(1) 赤-红

在这里插入图片描述

(2) 橙

在这里插入图片描述

(3) 黄

在这里插入图片描述

黄和绿之间的部分:黄绿色
在这里插入图片描述

(4) 绿

在这里插入图片描述

(5) 蓝

在这里插入图片描述

(6) 靛-青

在这里插入图片描述

(7) 紫

在这里插入图片描述

100. 实现思路

  • 输入硬盘图片,按像素读取RGB值,做kmeans聚类,给出最代表性的颜色。

  • 源代码还在优化中,敬请关注…

Ref

  • 从图片提取主要颜色的思路 matlab版:https://slandarer.blog.youkuaiyun.com/article/details/119056214
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值