OpenCV高手勿入! 半小时学会基本操作 6 色彩空间
Posted 我是小白呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV高手勿入! 半小时学会基本操作 6 色彩空间相关的知识,希望对你有一定的参考价值。
概述
OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. (第 6 课)
色彩空间
色彩空间 (Color Space) 即以同的空间维度来表示某一色彩 (通常使用 3 个或者 4 个 值).
常见的色彩空间:
- RGB
- HSV
- HIS
- YCrCb
- YUV
色彩空间转换
原图:
代码实现:
import numpy as np
import cv2
def color_space(image):
"""色彩空间转换"""
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
hls = cv2.cvtColor(image, cv2.COLOR_BGR2HLS)
ycrcb = cv2.cvtColor(image, cv2.COLOR_BGR2YCrCb)
yuv = cv2.cvtColor(image, cv2.COLOR_BGR2YUV)
h1 = np.hstack((hsv, hls))
h2 = np.hstack((ycrcb, yuv))
stack = np.vstack((h1, h2))
return stack
# 读取图片
img = cv2.imread("beautiful_girl.jpg")
# 不同色彩空间
stack = color_space(img)
# 图片展示
cv2.imshow("stack", stack)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
视频阈值
import numpy as np
import cv2
def video_capture():
"""读取视频"""
# 从摄像头获取视频
capture = cv2.VideoCapture(0)
# 循环
while (True):
# 读取一帧
ret, frame = capture.read()
# 如果读取帧, 返回值为False, break
if ret == False:
break
# 设置颜色阈值
lower = np.array([0, 0, 0])
upper = np.array([100, 100, 255])
mask = cv2.inRange(frame, lowerb=lower, upperb=upper)
# 展示
cv2.imshow("video", frame)
cv2.imshow("mask", mask)
# 按下q键退出
if cv2.waitKey(20) & 0xFF == ord("q"):
break
if __name__ == "__main__":
video_capture()
输出结果:
以上是关于OpenCV高手勿入! 半小时学会基本操作 6 色彩空间的主要内容,如果未能解决你的问题,请参考以下文章