亲宝软件园·资讯

展开

OpenCV色彩空间 OpenCV半小时掌握基本操作之色彩空间

我是小白呀 人气:0
想了解OpenCV半小时掌握基本操作之色彩空间的相关内容吗,我是小白呀在本文为您仔细讲解OpenCV色彩空间的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:OpenCV色彩空间,python色彩空间,下面大家一起来学习吧。

【OpenCV】⚠️高手勿入! 半小时学会基本操作⚠️色彩空间

概述

OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. (第 6 课)

在这里插入图片描述

色彩空间

色彩空间 (Color Space) 即以同的空间维度来表示某一色彩 (通常使用 3 个或者 4 个 值).

在这里插入图片描述

常见的色彩空间:

色彩空间转换

原图:

在这里插入图片描述

代码实现:

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()

输出结果:

在这里插入图片描述

加载全部内容

相关教程
猜你喜欢
用户评论