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

目录
  • 概述
  • 色彩空间
  • 色彩空间转换
  • 视频阈值

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

概述

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半小时掌握基本操作之色彩空间的文章就介绍到这了,更多相关OpenCV色彩空间内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python+OpenCV图像处理—— 色彩空间转换

    一.色彩空间的转换 代码如下: #色彩空间转换 import cv2 as cv def color_space_demo(img): gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) #RGB转换为GRAY 这里的GRAY是单通道的 cv.imshow("gray", gray) hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV) #RGB转换为HSV cv.imshow("hsv", hsv) y

  • 基于Python3.6中的OpenCV实现图片色彩空间的转换

    不同的色彩空间中对图片的色彩体现有很大不同 #色彩空间的相互转换:最常见的是HSV与RGB,YUV与RGB的相互转换 #常见色彩空间有: #RGB:最常用 #HSV:对指定色彩铭感,用于查找表达特定颜色 #HIS: #YCrCb:在人体肤色识别运用较多 #YUV:Android开发中运用较多 以下是对图片进行所有色彩空间的演示: import cv2 as cv ###导入openc包 def color_space_demo(image): gray = cv.cvtColor(image,c

  • OpenCV半小时掌握基本操作之对象测量

    目录 概述 对象测量 多边形拟合 计算对象中心 [OpenCV]⚠️高手勿入! 半小时学会基本操作 ⚠️ 对象测量 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. 对象测量 对象测量可以帮助我们进行矩阵计算: 获取弧长与面积 多边形拟合 计算图片对象中心 原点距: 中心距: 图像重心坐标: 多边形拟合 步骤: 读取图片 转换成灰度图 二值化 轮廓检测 计算轮廓周长 多边形拟合 格式: cv2.approxPolyD

  • OpenCV半小时掌握基本操作之圆圈检测

    [OpenCV]⚠️高手勿入! 半小时学会基本操作 ⚠️ 圆圈检测 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. 霍夫圆变换 霍夫圆变换 (Hough Circle Transform) 的原理和霍夫直线变换类似. 对于一条直线, 我们可以用参数 (r, θ) 表示, 对于圆我们需要三个参数 (x, y, r), 分别代表三个参数 x 圆心, y 圆心, r, 半径. 代码实现 因为霍夫圆检测对噪声比较敏感, 所

  • OpenCV半小时掌握基本操作之图像轮廓

    目录 概述 图像轮廓 绘制轮廓 轮廓特征 轮廓近似 边界矩形 外接圆 [OpenCV]⚠️高手勿入! 半小时学会基本操作 ⚠️ 图像轮廓 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. 图像轮廓 cv2.findContours可以帮助我们查找轮廓. 格式: cv2.findContours(image, mode, method, contours=None, hierarchy=None, offset=Non

  • OpenCV半小时掌握基本操作之分水岭算法

    [OpenCV]⚠️高手勿入! 半小时学会基本操作 ⚠️ 分水岭算法 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. 分水岭算法 分水岭算法 (Watershed Algorithm) 是一种图像区域分割算法. 在分割的过程中, 分水岭算法会把跟临近像素间的相似性作为重要的根据. 分水岭分割流程: 读取图片 转换成灰度图 二值化 距离变换 寻找种子 生成 Marker 分水岭变换 距离变换 距离变换 (Distan

  • OpenCV半小时掌握基本操作之直方图

    [OpenCV]⚠️高手勿入!⚠️ 半小时学会基本操作 ⚠️ 直方图 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. (第 20 课) 直方图 原图: cv2.calcHist()可以帮助我们统计像素并得到直方图. 格式: calcHist(images, channels, mask, histSize, ranges, hist=None, accumulate=None) 参数: images: 输入图像 c

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

    目录 概述 色彩空间 色彩空间转换 视频阈值 [OpenCV]⚠️高手勿入! 半小时学会基本操作⚠️色彩空间 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. (第 6 课) 色彩空间 色彩空间 (Color Space) 即以同的空间维度来表示某一色彩 (通常使用 3 个或者 4 个 值). 常见的色彩空间: RGB HSV HIS YCrCb YUV 色彩空间转换 原图: 代码实现: import numpy a

  • OpenCV半小时掌握基本操作之边缘检测

    目录 概述 Scharr 算子 Laplacian 算子 Sobel vs Scharr vs Laplacian Canny 边缘检测 高斯滤波器 梯度和方向 非极大值抑制 双阈值检测 [OpenCV]⚠️高手勿入! 半小时学会基本操作⚠️ 边缘检测 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. (第 12 课) Scharr 算子 Scharr 算子和 Sobel 算子基本一样. 只是卷积核系数不同. Sch

  • OpenCV半小时掌握基本操作之像素加减乘除&逻辑运算

    目录 概述 加减乘除 相加 相减 相乘 相除 逻辑运算 逻辑与 逻辑或 逻辑反 [OpenCV]⚠️高手勿入! 半小时学会基本操作⚠️像素加减乘除 & 逻辑运算 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. 加减乘除 原图: 相加 import cv2 def add(image1, image2): """相加""" result = cv2.add(i

  • OpenCV半小时掌握基本操作之傅里叶变换

    目录 概述 高频 vs 低频 傅里叶变换 代码详解 输入转换 傅里叶变换 获取幅度谱 傅里叶逆变换 获取低频 获取高频 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. 高频 vs 低频 高频 vs 低频: 高频: 变换剧烈的灰度分量, 例如边界 低频: 变换缓慢的灰度分量, 例如一片大海 滤波: 低通滤波器: 只保留低频, 会使得图像模糊 高通滤波器: 只保留高频, 会使得图像细节增强 傅里叶变换 傅里叶变化 (F

  • OpenCV半小时掌握基本操作之模板匹配

    目录 概述 模板匹配 案例一 案例二 [OpenCV]⚠️高手勿入! 半小时学会基本操作 ⚠️ 概述模板 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. (第 21 课) 模板匹配 模板匹配 (Template Matching) 和卷积的原理很像. 模板在原图像上从原点开始滑动, 计算模板与图片被模板覆盖的地方的差别程度. 格式: cv2.matchTemplate(image, templ, method, r

随机推荐