色彩空间
色彩空间
常见的色彩空间
RGB色彩空间、HSV色彩空间、LAB色彩空间
RGB色彩空间
1.RGB是红色(Red)、绿色(Green)、和蓝色(Blue)三种颜色,人类肉眼对着三种颜色光较为敏感。
2.蓝色波长范围450-495nm;绿色波长范围为495-570nm;红色波长范围为620-750nm。
如何使用OpenCV读取图片中RGB彩色图片
img1 = cv.imread('lena.png')
# 将BGR格式转换为RGB格式
img1_rgb = cv.cvtColor(img1, cv.COLOR_BGR2RGB)
red_channel = img1_rgb[:, :, 0] # 红色通道
green_channel = img1_rgb[:, :, 1] # 绿色通道
blue_channel = img1_rgb[:, :, 2] # 蓝色通道
red_img = np.zeros_like(img1_rgb)
red_img[:, :, 0] = red_channel
green_img = np.zeros_like(img1_rgb)
green_img[:, :, 1] = green_channel
blue_img = np.zeros_like(img1_rgb)
blue_img[:, :, 2] = blue_channel
cv.imshow("Original Image ", img1)
cv.imshow("Original Image", img1_rgb)
cv.imshow("Red Channel", red_img)
cv.imshow("Green Channel", green_img)
cv.imshow("Blue Channel", blue_img)
if cv.waitKey(0) & 0xFF == ord('q'):
cv.destroyAllWindows()
| 原始图像结果 | R通道结果 | G通道结果 | B通道结果 | RGB结果显示 |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
RGB色彩空间的缺陷
缺陷:它最大的缺点就是无法直观地区分图像的颜色、亮度和饱和度等值。
HSV色彩空间
H(Hue):表示颜色通道,不同的值表示不同的颜射范围。
S:表示表示饱和度通道,及色泽。
V:表示亮度通道,代表了图像亮度高低级别。
HSV色彩空间取值
|
|
色彩空间的转换与应用
img1 = cv.imread('lena.png')
# 将BGR格式转换为RGB格式
img1_rgb = cv.cvtColor(img1, cv.COLOR_BGR2RGB)
# 将RGB转换为HSV格式
img1_hsv = cv.cvtColor(img1_rgb, cv.COLOR_RGB2HSV)
# 分别提取HSV三个通道
h_channel = img1_hsv[:, :, 0] # 色调通道
s_channel = img1_hsv[:, :, 1] # 饱和度通道
v_channel = img1_hsv[:, :, 2] # 明度通道
# 创建单通道图像用于显示
h_img = np.zeros_like(img1_rgb)
h_img[:, :, 0] = h_channel
s_img = np.zeros_like(img1_rgb)
s_img[:, :, 1] = s_channel
v_img = np.zeros_like(img1_rgb)
v_img[:, :, 2] = v_channel
# 分别提取RGB三个颜色通道
red_channel = img1_rgb[:, :, 0] # 红色通道
green_channel = img1_rgb[:, :, 1] # 绿色通道
blue_channel = img1_rgb[:, :, 2] # 蓝色通道
# 创建单通道图像用于显示
red_img = np.zeros_like(img1_rgb)
red_img[:, :, 0] = red_channel
green_img = np.zeros_like(img1_rgb)
green_img[:, :, 1] = green_channel
blue_img = np.zeros_like(img1_rgb)
blue_img[:, :, 2] = blue_channel
# 显示原图和各通道图像
cv.imshow("Original RGB", img1_rgb)
cv.imshow("HSV Image", img1_hsv)
cv.imshow("H Channel", h_img)
cv.imshow("S Channel", s_img)
cv.imshow("V Channel", v_img)
cv.imshow("Red Channel", red_img)
cv.imshow("Green Channel", green_img)
cv.imshow("Blue Channel", blue_img)
# 显示灰度图形式的单通道
cv.imshow("H Channel Gray", h_channel)
cv.imshow("S Channel Gray", s_channel)
cv.imshow("V Channel Gray", v_channel)
key = cv.waitKey(0)
if key == ord('q'):
cv.destroyAllWindows()
色彩空间结果
| 原始图片 | H单通道 | S单通道 | V通道 | HSV结果 | 灰度图像 |
|---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
LAB色彩空
L 表示亮度信息。
A 表示色度信息中的红色/绿色值
B 表示色度信息中蓝色/黄色值。











浙公网安备 33010602011771号