背景
在日常应用中,我们经常会用到彩色图片转化为灰度图片,用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()
运行效果
原始图像
灰度图像
HSV图像
YUYV图像
(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()
以上便是颜色空间转化的例子,大家运行中有什么疑问欢迎相互讨论