图像的颜色一直是研究和关注的热点,也是特征工程不可或缺的feature,今天就简单介绍一种非常基础的颜色的rgb特征。

  1. 目的:

我们希望图片的rgb特征转化成一个可衡量的指标,例如人的身高、体重 这样的指标173cm, 60kg,用于后续工作。那么怎么转化呢?首先我们需要定一个标准,这里是从图片中提取了8种颜色(红、橙、黄....)用来反映图片的RGB指标, 就好比表述一个人的健康指标,可能回身高、体重、血常规等等。

2.颜色提取:

首先我们可以在网上找到hex颜色和对应名称的网页,如下:

通过html解析,我们就可以获得hex颜色和颜色名称的对应关系,然后再通过hex -> rgb转化就可以得到 rgb和颜色名称,如下表:

 ### 颜色转化方法def hex_to_int(s):""" hex to rgb"""s = s.lstrip("#")return int(s[:2], 16), int(s[2:4], 16), int(s[4:6], 16)

有了对应关系后,我们需要抽提出我们关心的颜色,如红色,黄色等,但问题就是红色可能会有很多种,这时就需要我们队将相近颜色进行合并。

def distance(coord1, coord2):""" 相近颜色计算方法 """return math.sqrt(sum([(i - j)**2 for i, j in zip(coord1, coord2)]))

我们先来测试一下相近颜色计算方法:

(1)我们比较一下距离: 红色 vs 绿色 距离 是不是 大于 红色 vs 粉色 ? 结果发现红色和粉色更接近,说明我们可以按照这样的方法进行。

distance(colors['red'], colors['green']) # 273.70787347096905
distance(colors['red'], colors['pink']) # 232.76812496559748
print(f"{distance(colors['red'], colors['green']) > distance(colors['red'], colors['pink'])}") ## True

(2)比较一下颜色:就是把每个颜色相近的颜色拿出来,大致检查一下即可,方法如下:

#### 通过相似度算法进行相近颜色合并
all_imgs = []
for color_name in ['red', 'orange', 'yellow', 'green', 'blue', 'purple', 'grey', 'pink']:topk = 5imgs = []closest_names = closest(colors, colors[color_name], topk)closest_colors = list(map(colors.get, closest_names))print(f"{color_name}: {closest_names}")for i, (name, rgb) in enumerate(zip(closest_names, closest_colors)):img = show_color(rgb, size=100)imgs.append(pil2cv_img(img))imgs = np.hstack(imgs)all_imgs.append(imgs)
all_imgs = np.vstack(all_imgs)cv2_pilimg(all_imgs)

这样我们就拿到了指标颜色。有了指标颜色,后面的就简单了。我们先那一张图片测试一下颜色提取效果:

这样的很简单的就可以拿到rgb特征了。当然,方法有很多种,这只是其中的一种。

今天就分享到这里, 我是paperClub。

备注:WeiXin 搜索paperClub, 添加关注并回复【paperClub】即可获取使用方法。

1. 感谢各位小伙伴的关注, 您的点赞、鼓励和留言,都是我深夜坚持的一份动力,无论褒贬,都是我们行进途中最好的回馈,也都会被认真对待。

2. 我将持续分享各类、好玩且有趣的算法应用及工程和项目,欢迎分享和转发。沟通、学习和交流,请与我联系,虽然平时忙,但留言必回,勿急,感谢理解!

3. 分享内容包括开源项目和自研项目,如在引用或使用时,考虑不周、遗漏引用信息或涉及版权等,请您及时联系。如果您对某些内容感兴趣,我们可以一起讨论、交流和学习。

怎么提取图片里的颜色?图像颜色特征提取相关推荐

  1. 计算机中图像的颜色,详解在电脑中实现提取图片颜色的操作的几种技巧

    我们在很多的电脑的软件对于图片的使用中,是有很多的软件可以实现设计的,那在不同的工具中有需要使用到的一些颜色的提取的就是我们需要使用到的不同的问题,怎么在看到图片以后就实现提取图片颜色的呢,今天小编就 ...

  2. 利用几种颜色量化方法提取图片颜色色调

    利用几种颜色量化方法提取图片颜色色调 利用几种颜色量化方法提取图片颜色色调 1 k-means方法(在RGB空间) 2 k-means方法(Lab颜色空间) 3 最小方差量化方法rgb2ind() 4 ...

  3. 颜色量化 matlab,利用几种颜色量化方法提取图片颜色色调

    利用几种颜色量化方法提取图片颜色色调 这里主要用3种方法:包含两种k-means方法和一种matlab自带的最小方差量化方法. 为了方便对比,文中选用梵高的星空(The Starry Night)作为 ...

  4. Gradify - 提取图片颜色,创建响应式的 CSS渐变

    被请求的HTTP对象之间的延迟会有一个时间段,这个期间网页看起来不完整.Gradify 可以分析出图像中4个最常见的颜色,创建一个梯度(或纯色)作为图片占位符.Gradify 可以在在任何图像发现最突 ...

  5. 基于聚类和神经网络的图像颜色提取和评分方案

    概述 图像颜色提取的前端React方案,基于canvas,使用K均值聚类算法提取主要颜色(颜色量子化),用离线训练的神经网络进行评分,附带可视化方案和相关动画. 详细 代码下载:http://www. ...

  6. android图片颜色过滤,在Android上实现图像颜色过滤与反转

    在Android上实现图像颜色过滤与反转 一:原理 Android已经提供了以resource形式加载图片,使用BitmapFactory的decodeResource 方法获取一个Bitmap对象, ...

  7. 图片坐标提取软件/图片坐标点和像素点颜色提取软件/图片坐标获取工具/Python图片坐标获取源码/图片像素坐标获取软件/python tkinter 图片显示(完全开源)

    该软件使用python写的,可以提取像素点的坐标还有也能获取像素点的16进制数据RGB565和RGB888(RGB888仅最新的源码才支持),可以单点坐标也可以按键坐标,甚至可以使用简单的左右键配合使 ...

  8. 【千律】OpenCV基础:通过图像颜色进行文字提取

    环境:Python3.8 和 OpenCV 内容:通过图像颜色进行文字提取 文字提取步骤 1.  模糊图片,削弱噪声 2.  获取二值图 3.  形态学操作,完善二值图 4.  轮廓提取,获得字符区域 ...

  9. 使用Palette类提取图片的颜色信息

    原文出处:http://qichaochen.github.io/2014/11/16/105-Android-5.0-Palette-01/ 在Material Design设计中很重要的一部分内容 ...

最新文章

  1. 同等学力计算机综合难吗,报考2018年同等学力申硕计算机在职研究生毕业很困难吗...
  2. Magicodes.IE已支持导出Word、Pdf和Html
  3. javascript控制台_如何使用JavaScript控制台改善工作流程
  4. Ajax Extensions核心控件介绍
  5. python 环境管理工具_python3环境管理器
  6. AndroidStudio_AndroidStudio debug的时候断点打不上_No executable code found at line---Android原生开发工作笔记236
  7. 计算机网络工程教程:基于cisco路由器和交换机,计算机网络工程教程—基于cisco路由器和交换机教学课件作者陆魁军chap2交换机VLAN设置v2.ppt...
  8. (SAE)skylark app engine preview (1) —— guestbook
  9. snmp trap 如何在浏览器中_SNMP Trap的功能介绍
  10. (转)Aladdin PK SimCorp Dimension
  11. IPTV软件提取后无法安装:显示安装失败,需求的共享用户签名错误!请大神帮助,谢谢
  12. Idea终端中无法使用maven命令问题解决
  13. 阿里云主机的公网带宽和私网带宽的介绍
  14. redis setex php,redis中setex命令和set命令有什么区别
  15. jenkins+Warnings Next Generation Plugin构建代码自动化检测
  16. 计算机桌面没有打字,打字为什么电脑不显示出来怎么办
  17. 使用vue-seamless-scroll实现滚动,出现空白间隔的问题
  18. html实战:用html编写游戏
  19. 上海踩踏事件所想,莫把应急预案当摆设
  20. OpenCV分水岭watershed的应用注意

热门文章

  1. golang中time包用法
  2. 什么是全量备份,增量备份,差异备份?
  3. ubuntu 20.04挂载机械硬盘及修改windows下ntfs格式读写权限的详细步骤
  4. 计算机图像与艺术语言,计算机图形艺术设计
  5. hp ml110g7 linux,HP ML110 G7 安装2015操作系统.doc
  6. 搭建部署zabbix监控客户端Linux系统
  7. 【基于 docker 的 Flask 的深度学习模型部署】
  8. ceph存储 ceph集群ntp校时详细配置说明
  9. centOS6.5 安装后无法启动无线上网
  10. 【C语言】printf函数格式控制符