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

时间:2022-11-30 16:51:37

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

概述

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

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

 

色彩空间

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

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

常见的色彩空间:

  • RGB
  • HSV
  • HIS
  • YCrCb
  • YUV

 

色彩空间转换

原图:

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

代码实现:

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

输出结果:

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

 

视频阈值

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

原文链接:https://blog.csdn.net/weixin_46274168/article/details/119071359