计算机视觉基础-图像处理-彩色空间互转

计算机视觉基础-图像处理-彩色空间互转

  • 一、简介
  • 二、相关颜色空间的原理介绍
    • 2.1 RGB
    • 2.2 HSV
  • 三、颜色空间互转理论的介绍
    • 3.1 RGB转灰度图
    • 3.2 RGB与HSV转换
  • 四、基于OpenCV代码实现

一、简介

彩色图转灰度图在图像处理中应用非常广泛,而且很多算法只对灰度图有效;另外,相比RGB,其他颜色空间(比如HSV、HSI)更具可分离性和可操作性,所以很多图像算法需要将图像从RGB转为其他颜色空间,所以图像彩色互转是十分重要和关键的。

二、相关颜色空间的原理介绍

或许你会有疑惑,上面提到的RGB是什么?HSV是什么?它们都是颜色空间。

2.1 RGB

RGB(红绿蓝)是依据人眼识别的颜色定义出的空间,可表示大部分颜色。但在科学研究一般不采用RGB颜色空间,因为它的细节难以进行数字化的调整。它将色调,亮度,饱和度三个量放在一起表示,很难分开。它是最通用的面向硬件的彩色模型,该模型用于彩色监视器和一大类彩色视频摄像。

RGB颜色空间基于颜色的加法混色原理,从黑色不断叠加Red,Green,Blue的颜色,最终可以得到白色,如图:
计算机视觉基础-图像处理-彩色空间互转_第1张图片
将R、G、B三个通道作为笛卡尔坐标系中的X、Y、Z轴,就得到了一种对于颜色的空间描述,如图:
计算机视觉基础-图像处理-彩色空间互转_第2张图片
这就相当于,每个点对应每一种颜色,每种颜色都有一个坐标,如图:
计算机视觉基础-图像处理-彩色空间互转_第3张图片

2.2 HSV

HSV即色相(Hue)、饱和度(Saturation)、明度(Value),又称HSB(B即Brightness)。色相是色彩的基本属性,就是平常说的颜色的名称,如红色、黄色等;饱和度(S)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值;明度(V),取0-max(计算机中HSV取值范围和存储的长度有关),表示色彩的明亮程度,但与光强无直接联系。

HSV是一种将RGB色彩空间中的点在倒圆锥体中的表示方法,圆锥的顶点处,V=0,H和S无定义,代表黑色。圆锥的顶面中心处V=max,S=0,H无定义,代表白色。用一个圆锥空间模型来描述:
计算机视觉基础-图像处理-彩色空间互转_第4张图片
RGB颜色空间中,三种颜色分量的取值与所生成的颜色之间的联系并不直观。而HSV颜色空间,更类似于人类感觉颜色的方式,封装了关于颜色的信息:“这是什么颜色?深浅如何?明暗如何?”

三、颜色空间互转理论的介绍

3.1 RGB转灰度图

对于彩色转灰度,有一个很著名的心理学公式:Gray = R * 0.299 + G * 0.587 + B * 0.114

3.2 RGB与HSV转换

1、由RGB到HSV有以下公式:
计算机视觉基础-图像处理-彩色空间互转_第5张图片
或:
计算机视觉基础-图像处理-彩色空间互转_第6张图片
2、由HSV到RGB有以下公式:
计算机视觉基础-图像处理-彩色空间互转_第7张图片

四、基于OpenCV代码实现

在 OpenCV 中有 超过150 种进行颜色空间转换的方法。但是你以后就会发现我们经常用到的也就两种:BGR↔Gray 和BGR↔HSV。
我们用到的函数是cv2.cvtColor(img,flag),img表示图片,flag表示转换类型。
对于BGR↔Gray的转换,我们使用的flag是cv2.COLOR_BGR2GRAY。
同样对于BGR↔HSV的转换我们用的flag是cv2.COLOR_BGR2HSV。

import cv2
import numpy as np

img = cv2.imread('C:\\Users\\Administrator\\Pictures\\icecream.jpg')
rows,cols,channel=img.shape
resized = cv2.resize(img, (int(rows*0.4),int(cols*0.4)), interpolation=cv2.INTER_LINEAR)  # 0.4.倍缩小,双线性插值
hsv = cv2.cvtColor(resized,cv2.COLOR_BGR2HSV)
gray = cv2.cvtColor(resized,cv2.COLOR_BGR2GRAY)
cv2.imshow("hsv",hsv)
cv2.imshow("gray",gray)
cv2.waitKey(0)
cv2.destroyAllWindows()

由于图片太大截不了全部,所以先0.4倍缩放,方便截图
BGR↔HSV:
计算机视觉基础-图像处理-彩色空间互转_第8张图片
BGR↔Gray:
计算机视觉基础-图像处理-彩色空间互转_第9张图片

你可能感兴趣的:(计算机视觉基础-图像处理-彩色空间互转)