python-openCV入门(二)--颜色空间转化

背景

在日常应用中,我们经常会用到彩色图片转化为灰度图片,用openCV可以很容易的完成这个功能。
在计算机视觉中,常用的色彩空间有:灰度、BGR以及HSV(色调、饱和度、黑暗程度)

下面用几个例子说明颜色控件的使用与说明

(1)将RGB分别转化为灰度、YUYV和HSV图像

代码展示

# -*- coding=GBK -*-
import cv2 as cv

# 色彩空间的转换
def color_space_demo(image):
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)  # RGB转换为gray
    cv.imshow("rgb-->gray", gray)
    hsv = cv.cvtColor(image, cv.COLOR_BGR2HSV)  # RGB转换为hsv
    cv.imshow("rgb-->hsv", hsv)
    yuv = cv.cvtColor(image, cv.COLOR_BGR2YUV)  # RGB转换为yuv
    cv.imshow("rgb-->yuv", yuv)


src = cv.imread("1.jpg")
cv.namedWindow("yuanshi-1", cv.WINDOW_AUTOSIZE)
cv.imshow("yuanshi-1", src)
color_space_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()

运行效果

原始图像


原始.jpg

灰度图像


灰度.png

HSV图像
HSV.png

YUYV图像


YUYV.png
(2)将RGB分别提取R、G、B通道值

代码展示

# -*- coding=GBK -*-
import cv2 as cv

src = cv.imread("1.jpg")
cv.namedWindow("no", cv.WINDOW_AUTOSIZE)
cv.imshow("no", src)

# 通道分离,输出三个单通道图片
b, g, r = cv.split(src)  # 将彩色图像分割成3个通道
cv.imshow("blue", b)
cv.imshow("green", g)
cv.imshow("red", r)

# 通道合并
src = cv.merge([b, g, r])
cv.imshow("add", src)

# 修改某个通道的值
src[:, :, 2] = 100
cv.imshow("single", src)

cv.waitKey(0)
cv.destroyAllWindows()

以上便是颜色空间转化的例子,大家运行中有什么疑问欢迎相互讨论

你可能感兴趣的:(python-openCV入门(二)--颜色空间转化)