目录

1 颜色特征

1.1 RGB色彩空间

1.2 HSV色彩空间

1.3 Lab色彩空间

2 使用opencv-python对图像颜色特征提取并绘制直方图

2.1 RGB颜色特征和直方图

2.2 HSV颜色特征和直方图

2.3 Lab颜色特征和直方图


1 颜色特征

1.1 RGB色彩空间

  RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。

RGB颜色模型的优点是:

(1)易于理解;

(2)便于硬件实现,现代显示屏一般基于RGB模型;

(3)引入位分辨率(颜色深度),指一个像素中,每个颜色分量的比特数。位分辨率决定了色彩等级,例如8位颜色深度,每个颜色分量就有256种可能。

  RGB颜色模型的缺点在于三个分量均用于表示色调,即如果改变某一个分量的数值,这个像素的颜色就发生了改变。在颜色定位等工程中,使用RGB模型就要同时考虑R、G、B三个变量、较为复杂。

1.2 HSV色彩空间

   HSV中颜色的参数分别是:色调(H),饱和度(S),明度(V)。对用户来说是一种直观的颜色模型。我们可以从一种纯色彩开始,即指定色彩角H,并让V=S=1,然后我们可以通过向其中加入黑色和白色来得到我们需要的颜色。增加黑色可以减小V而S不变,同样增加白色可以减小S而V不变。

  由于HSV是一种比较直观的颜色模型,所以在许多图像编辑工具中应用比较广泛。在 HSV 颜色空间下,比 BGR 更容易跟踪某种颜色的物体,常用于分割指定颜色的物体。

1.3 Lab色彩空间

  Lab颜色模型是由CIE(国际照明委员会)制定的一种色彩模式。自然界中任何一点色都可以在Lab空间中表达出来,它的色彩空间比RGB空间还要大。另外,这种模式是以数字化方式来描述人的视觉感应, 与设备无关,所以它弥补了RGB和CMYK模式必须依赖于设备色彩特性的不足。

  由于Lab的色彩空间要比RGB模式和CMYK模式的色彩空间大。这就意味着RGB以及CMYK所能描述的色彩信息在Lab空间中都能得以影射。Lab颜色模型取坐标Lab,其中L亮度;a的正数代表红色,负端代表绿色;b的正数代表黄色, 负端代表蓝色。

2 使用opencv-python对图像颜色特征提取并绘制直方图

图像直方图的绘制调用opencv-python中的calcHist函数。

hist = cv2.calcHist([image],             # 传入图像(列表)[0],                 # 使用的通道(使用通道:可选[0],[1],[2])None,                # 没有使用mask(蒙版)[256],               # HistSize[0.0,255.0])         # 直方图柱的范围# return->list

2.1 RGB颜色特征和直方图

代码:

import numpy as np
import cv2
import matplotlib.pyplot as plt# 读取图片
pic_file='./photo/cat.jpg'
img_bgr = cv2.imread(pic_file,cv2.IMREAD_COLOR)
cv2.imshow("input",img_bgr)
# 分别获取三个通道的ndarray数据
img_b=img_bgr[:,:,0]
img_g=img_bgr[:,:,1]
img_r=img_bgr[:,:,2]'''按R、G、B三个通道分别计算颜色直方图'''
b_hist = cv2.calcHist([img_bgr],[0],None,[256],[0,255])
g_hist = cv2.calcHist([img_bgr],[1],None,[256],[0,255])
r_hist = cv2.calcHist([img_bgr],[2],None,[256],[0,255])
m,dev = cv2.meanStdDev(img_bgr)  #计算G、B、R三通道的均值和方差
# img_r_mean=np.mean(r_hist)  #计算R通道的均值
# print(m)
# print(dev)'''显示三个通道的颜色直方图'''
plt.plot(b_hist,label='B',color='blue')
plt.plot(g_hist,label='G',color='green')
plt.plot(r_hist,label='R',color='red')
plt.legend(loc='best')
plt.xlim([0,256])
plt.show()
cv2.waitKey(0)

图像和直方图显示:

2.2 HSV颜色特征和直方图

代码:

import numpy as np
import cv2
import matplotlib.pyplot as plt# 读取图片
pic_file='./photo/cat.jpg'
img_bgr = cv2.imread(pic_file,cv2.IMREAD_COLOR)
img_hsv = cv2.cvtColor(img_bgr,cv2.COLOR_BGR2HSV)
cv2.namedWindow("input",cv2.WINDOW_GUI_NORMAL)
cv2.imshow("input",img_hsv)# 分别获取三个通道的ndarray数据
img_h=img_hsv[:,:,0]
img_s=img_hsv[:,:,1]
img_v=img_hsv[:,:,2]'''按H、S、V三个通道分别计算颜色直方图'''
h_hist = cv2.calcHist([img_hsv],[0],None,[256],[0,255])
s_hist = cv2.calcHist([img_hsv],[1],None,[256],[0,255])
v_hist = cv2.calcHist([img_hsv],[2],None,[256],[0,255])
# m,dev = cv2.meanStdDev(img_hsv)  #计算H、V、S三通道的均值和方差'''显示三个通道的颜色直方图'''
plt.plot(h_hist,label='H',color='blue')
plt.plot(s_hist,label='S',color='green')
plt.plot(v_hist,label='V',color='red')
plt.legend(loc='best')
plt.xlim([0,256])
plt.show()
cv2.waitKey(0)

图像和直方图显示:

2.3 Lab颜色特征和直方图

代码:

import numpy as np
import cv2
import matplotlib.pyplot as plt# 读取图片
pic_file='./photo/cat.jpg'
img_bgr = cv2.imread(pic_file,cv2.IMREAD_COLOR)
img_lab=cv2.cvtColor(img_bgr,cv2.COLOR_BGR2LAB)
cv2.namedWindow("input",cv2.WINDOW_GUI_NORMAL)
cv2.imshow("input",img_lab)# 分别获取三个通道的ndarray数据
img_ls=img_lab[:,:,0]
img_as=img_lab[:,:,1]
img_bs=img_lab[:,:,2]'''按L、A、B三个通道分别计算颜色直方图'''
ls_hist = cv2.calcHist([img_lab],[0],None,[256],[0,255])
as_hist = cv2.calcHist([img_lab],[1],None,[256],[0,255])
bs_hist = cv2.calcHist([img_lab],[2],None,[256],[0,255])
# m,dev = cv2.meanStdDev(img_lab)  #计算L、A、B三通道的均值和方差
# print(m)'''显示三个通道的颜色直方图'''
plt.plot(ls_hist,label='l',color='blue')
plt.plot(as_hist,label='a',color='green')
plt.plot(bs_hist,label='b',color='red')
plt.legend(loc='best')
plt.xlim([0,256])
plt.show()
cv2.waitKey(0)

图像和直方图显示:

参考来源:你真的了解眼里所见的色彩吗?(一文总结RGB/HSV/Lab) - 知乎

OpenCV—python 颜色空间(RGB,HSV,Lab)与 颜色直方图_SongpingWang的博客-CSDN博客_opencv 颜色

机器学习图像特征提取—颜色(RGB、HSV、Lab)特征提取并绘制直方图相关推荐

  1. 色彩空间(RGB, HSV, LAB, YUV)

    RGB颜色空间 RGB(red,green,blue)颜色空间最常用的用途就是显示器系统(计算机.电视机等都是采用RGB颜色空间来进行图像显示).一般来说,电脑,电视机等是利用三个电子枪分别发射R分量 ...

  2. 你真的了解眼里所见的色彩吗?(一文总结RGB/HSV/Lab)

    1 认识色彩 我们DNA里的氮元素,牙齿里的钙元素,血液里的铁元素,吃掉的东西里的碳元素,都是曾经宇宙大爆炸时的万千星辰散落后组成的,所以我们每个人都是星辰.--卡尔萨根 在我们的印象里,星辰都是斑斓 ...

  3. RGB与Lab颜色空间互相转换

    RGB与Lab颜色空间互相转换 1.Lab颜色空间 同RGB颜色空间相比(见博客<光与色的故事--颜色空间浅析>),Lab是一种不常用的色彩空间.它是在1931年国际照明委员会(CIE)制 ...

  4. RGB、Lab等颜色空间的区别

    RGB颜色空间 RGB颜色是红色(Red).绿色(Green)和蓝色(Blue)三基色的字母缩写.RGB色彩模式是通过三种基本颜色的不同程度的迭加来产生各种各样的不同颜色.这个标准能够涵盖人类视力所能 ...

  5. 从RGB到Lab色彩空间的转换

    最近一直在学习绘制RGB,HSV,Lab色彩空间的直方图,其中也涉及到互相转换的知识,这是网上看到的介绍的. ============================================= ...

  6. RGB与Lab颜色空间互相转换 持续更新中

    RGB与Lab颜色空间互相转换 1.Lab颜色空间 同RGB颜色空间相比(见博客<光与色的故事–颜色空间浅析>),Lab是一种不常用的色彩空间.它是在1931年国际照明委员会(CIE)制定 ...

  7. python使用openCV加载图像、并将BGR格式转换成HSV格式、定义HSV格式中需要分离颜色的掩码(掩模)区间(mask)、并使用mask信息进行颜色分离、BGR格式的图像转化为RGB、并可视化

    python使用openCV加载图像.并将BGR格式转换成HSV格式.定义HSV格式中需要分离颜色的掩码(掩模)区间(mask).并使用mask信息进行颜色分离.将BGR格式的图像转化为RGB.可视化 ...

  8. 面向机器学习的特征工程 八、自动化特征提取器:图像特征提取和深度学习

    来源:ApacheCN<面向机器学习的特征工程>翻译项目 译者:friedhelm739 校对:(虚位以待) 视觉和声音是人类固有的感觉输入.我们的大脑是可以迅速进化我们的能力来处理视觉和 ...

  9. python图像特征提取与匹配_图像特征特点及其常用的特征提取与匹配方法

    常用的图像特征有颜色特征.纹理特征.形状特征.空间关系特征. 一颜色特征 (一)特点:颜色特征是一种全局特征,描述了图像或图像区域所对应的景物的表面性质.一般颜色特征是基于像素点的特征,此时所有属于图 ...

最新文章

  1. Golang反射机制的实现分析——reflect.Type类型名称
  2. SpringMVC 返回json
  3. Markdown 编辑器的使用记录 (Typora)
  4. PMCAFF | 创业公司产品经理如何建立完善的产品开发体系?
  5. Python数值类型:小数与百分数的转换
  6. 业务中台建设与应用_容易网业务中台建设,助力企业数字化转型
  7. [蓝桥杯][基础练习VIP]分解质因数-质数筛选+模拟+双指针
  8. Docker安装Redis以及配置Redis环境
  9. 阿里云 Composer 全量镜像
  10. Gopher一定要会的代码自动化检查
  11. php 伸展菜单代码,JQUERY编写的一款简易伸展显示详情菜单特效
  12. 蓝桥杯 java 楼梯,递归1之楼梯问题
  13. macOS Command - softwareupdate
  14. 汽车4G车载TBOX智能信息终端
  15. SLAM之回环检测与优化
  16. 学计算机高中应选什么科目,学计算机高中需要选哪三科?高中自选三科怎么上课?...
  17. sketch插件开发
  18. 反斜杆e,Linux下五彩斑斓的命令行输出
  19. 小米路由器4C R4CM 原厂BootLoader和eeprom备份
  20. html input禁止驶入,layui form表单 input输入框获取焦点后 阻止Enter回车自动提交 – 执念 – 博客园...

热门文章

  1. C语言的scanf函数在visualstudio中的错误
  2. Ajax请求的五大步骤——一看就会
  3. CAD看图如何在电脑上快速找到并打开指定CAD图纸
  4. linux下挂载gpt格式的移动硬盘
  5. LabVIEW基础(1)
  6. 网页设计之字体设置(上)
  7. python将图片帧生成视频
  8. sql查询每科成绩的最高分_SQL查询语句: 查询 每科目分数最高的5项(学生姓名,科目,分数)...
  9. blender 学习
  10. python中assert的用法记录