美文网首页
3.1 ImageProcessing - 颜色空间

3.1 ImageProcessing - 颜色空间

作者: sumpig | 来源:发表于2019-03-15 17:28 被阅读0次

改变颜色空间

OpenCV中有150多种颜色空间转换方法。但我们将只研究两个最广泛使用的,即 BGR - GrayBGR - HSV

对于颜色转换,我们使用函数 cv2.cvtColor(input_image,flag),其中 flag 确定转换类型。

对于 BGR - Gray 转换,我们使用 cv2.COLOR_BGR2GRAY 标志。同样,对于 BGR - HSV ,我们使用 cv2.COLOR_BGR2HSV 标志。要获取其他标志,只需在python终端中运行以下命令:

import cv2

flags = [i for i in dir(cv2) if i.startswith('COLOR_')]
print(flags)

对于HSV,色调范围为[0,79],饱和度范围为[0,255],值范围为[0,255]。不同的软件使用不同的比例。因此,如果将opencv值与它们进行比较,则需要规范化这些范围。


目标跟踪

现在我们知道了如何将bgr图像转换为hsv,我们可以使用它来提取彩色对象。在HSV中,表示颜色比RGB颜色空间更容易。在我们的应用程序中,我们将尝试提取蓝色对象。所以方法如下:

  • 拍摄视频的每一帧
  • 从BGR转换为HSV颜色空间
  • 我们将HSV图像的蓝色范围设定为阈值。
  • 现在只提取蓝色物体,我们可以在图像上做任何我们想做的事情。
import cv2
import numpy as np

cap = cv2.VideoCapture(0)

while(1):

    # Take each frame
    _, frame = cap.read()

    # Convert BGR to HSV
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    # define range of blue color in HSV
    lower_blue = np.array([110,50,50])
    upper_blue = np.array([130,255,255])

    # Threshold the HSV image to get only blue colors
    mask = cv2.inRange(hsv, lower_blue, upper_blue)

    # Bitwise-AND mask and original image
    res = cv2.bitwise_and(frame,frame, mask=mask)

    cv2.imshow('frame',frame)
    cv2.imshow('mask',mask)
    cv2.imshow('res',res)
    k = cv2.waitKey(5) & 0xFF
    if k == 27:
        break

cv2.destroyAllWindows()
3.png

这是目标跟踪中最简单的方法。一旦你学习了轮廓的功能,你就可以做很多事情,比如找到这个物体的质心,然后用它来跟踪这个物体,只需在相机前面移动你的手就可以画出图表,还有很多其他有趣的事情。

如何找到要跟踪的HSV值?

您可以使用相同的函数 cv2.cvtColor()。不要传递图像,只需传递所需的BGR值。例如,要查找绿色的hsv值,请在python终端中尝试以下命令:

import cv2
import numpy as np 

green = np.uint8([[[0,255,0 ]]])
hsv_green = cv2.cvtColor(green,cv2.COLOR_BGR2HSV)
print(hsv_green)
# [[[ 60 255 255]]]

现在分别取 [H-10, 100, 100] 和 [H+10, 255, 255] 作为下限和上限。除此之外,您可以使用任何图像编辑工具(如GIMP)或任何在线转换器来查找这些值,但不要忘记调整HSV范围。

相关文章

  • 3.1 ImageProcessing - 颜色空间

    改变颜色空间 OpenCV中有150多种颜色空间转换方法。但我们将只研究两个最广泛使用的,即 BGR - Gray...

  • 颜色空间

    颜色空间总结 - CSDN博客 https://blog.csdn.net/qq_34106574/articl...

  • 颜色空间

    颜色空间 = 色彩空间 颜色空间包含的种类 : RGB,YUV,HSV,HSL... 1,RGB 空间 主要用于老...

  • 颜色空间

    饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接...

  • Canvas入门到高级详解(中)

    三、 canvas 进阶 3.1 Canvas 颜色样式和阴影 3.1.1 设置填充和描边的颜色(掌握) fill...

  • HGlCl颜色空间

    HGlCl颜色空间 视频数字颜色管理 全景视频数字颜色管理的高点全景 全景数字视频技术产品 全景凝视数字技术 36...

  • 颜色空间模型

    颜色通常用三个独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间。但被描述的颜色对象本...

  • YUV颜色空间

    YUV颜色空间 为什么学习YUV颜色空间 使用系统提供的接口获取到的音视频数据都保存在CMSampleBuffer...

  • 颜色空间转换

    BT601和BT709 由于在处理相机实时图像数据时,需要将相机采集的YUV数据转换为RGB,根据GPUImage...

  • YUV颜色空间

    YUV颜色空间 使用系统提供的接口获取到的音视频数据都保存在CMSampleBufferRef中, 使用GPUIm...

网友评论

      本文标题:3.1 ImageProcessing - 颜色空间

      本文链接:https://www.haomeiwen.com/subject/ixyrmqtx.html