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

作者:我是小白呀 时间:2021-01-05 05:27:31 

【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半小时掌握基本操作之色彩空间

来源:https://blog.csdn.net/weixin_46274168/article/details/119071359

标签:OpenCV,色彩空间,python
0
投稿

猜你喜欢

  • JavaScript模板解析演示实例

    2009-10-19 23:16:00
  • python3爬虫中多线程进行解锁操作实例

    2021-04-29 00:16:42
  • Python中functools模块函数解析

    2021-03-11 10:15:40
  • python实现生成字符串大小写字母和数字的各种组合

    2021-02-09 07:33:00
  • asp源码实现Access数据库的建立或压缩

    2007-08-06 16:54:00
  • 细化解析:Mysql数据库对文件操作的封装

    2008-11-27 16:32:00
  • pytorch中index_select()的用法详解

    2022-01-20 19:44:05
  • numpy.insert()的具体使用方法

    2021-12-23 15:33:34
  • python复制文件的方法实例详解

    2021-12-22 11:43:45
  • 用户研究角度看设计(2):用户为何视若无睹

    2009-01-09 12:51:00
  • 跟老齐学Python之dict()的操作方法

    2022-05-12 16:54:43
  • Python版微信红包分配算法

    2022-04-10 12:48:22
  • jRaiser与jQuery的冲突问题

    2010-07-27 12:36:00
  • python集合删除多种方法详解

    2021-12-06 07:59:51
  • 详解Python中常用的激活函数(Sigmoid、Tanh、ReLU等)

    2022-03-25 22:45:51
  • python求平均数、方差、中位数的例子

    2022-08-23 21:24:57
  • 事件触发列表与解说

    2013-07-19 11:17:12
  • ORACLE 最大连接数的问题

    2009-07-23 14:27:00
  • go实现文件的创建、删除与读取示例代码

    2023-06-17 05:10:50
  • SQL Server实现分布式数据库系统的终极目标

    2010-08-05 14:57:00
  • asp之家 网络编程 m.aspxhome.com