文章目录
- 1.RGB色彩空间
- 2.HSV色彩空间
- 3.由RGB色彩空间转化为HSV色彩空间
1.RGB色彩空间 RGB色彩空间源于使用阴极射线管的彩色电视,RGB分别代表三个基色(R-红色、G-绿色、B-蓝色),具体的色彩值由三个基色叠加而成。在图像处理中,我们往往使用向量表示色彩的值,如(0,0,0)表示黑色、(255, 255, 255)表示白色。其中,255表示色彩空间被量化成255个数,最高亮度值为255(255 = 2^8 - 1,即每个色彩通道用8位表示)。在这个色彩空间中,有256256256种颜色。
【计算机视觉|计算机视觉之浅析RGB/HSV与inRange函数】??:
- (红red 绿green 蓝blue)三原色:取值范围都是:[0,255],[0,255],[0,255]
- 在OpenCV中,RGB色彩空间的顺序是B,G,R
- H (Hue)色相:取值范围 [0,180]
- S (Saturation)饱和度,即色彩纯净度,0饱和度为白色; 取值范围:[0,255]
- V (Value):明度 0明度为纯黑色;取值范围:[0,255]
文章图片
cv2.cvtColor(src, cv2.COLOR_BGR2HSV)
,很方便的就可以将RGB色彩空间转化为HSV色彩空间。import cv2
import numpy as np# 读取图片
image = cv2.imread('test_pic.JPG')
cv2.namedWindow('BGR', cv2.WINDOW_NORMAL)
cv2.imshow("BGR", image)# RGB转化到HSV
dst = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)# 根据HSV提取头发
low_hsv = np.array([0, 0, 0])#根据上图中把黑色的最低值依次写入array中
high_hsv = np.array([180, 255, 46])#根据上图中把黑色的最高值依次写入array中
dst = cv2.inRange(dst, low_hsv, high_hsv)
cv2.namedWindow('result', cv2.WINDOW_NORMAL)
cv2.imshow("result", dst)cv2.waitKey(0)
cv2.destroyAllWindows()
左边是原图,右侧是过滤出来的黑色区域
推荐阅读
- OpenCV实战|OpenCV 图像分割--Kmean聚类
- 计算机视觉|色彩空间RGB/CMYK/HSL/HSB/HSV/Lab/YUV基础理论及转换方法:RGB与YUV
- #|python opencv 图像像素处理基础
- 目标检测|基于ZYNQ的帧差法多运动目标检测(开源)
- 神经网络|【论文导读】浅谈胶囊网络与动态路由算法
- 人工智能|涨点技巧!Kaggle图像分类项目的性能提升指南
- python|经典非局部均值滤波(NLM)算法python实现(1)
- 图像处理|【OpenCv】图像分割——分水岭算法
- Python|【Opencv实战】这是我见过的最强大“美颜滤镜”,代码美颜傻瓜式一键操作~(附源码)