当前位置:主页 > python教程 > python opencv将特定颜色转换代码详解

python opencv将特定颜色转换方法总结

发布:2019-06-24 09:26:12 117


给大家整理了相关的编程文章,网友国木兰根据主题投稿了本篇教程内容,涉及到python、opencv、颜色、转换、python opencv将特定颜色转换代码详解相关内容,已被111网友关注,下面的电子资料对本篇知识点有更加详尽的解释。

python opencv将特定颜色转换代码详解

色彩空间转换

# Color_conversion
img2 = cv.cvtColor(img,cv.COLOR_BGR2HSV)
img3 = cv.cvtColor(img,cv.COLOR_BGR2YUV)
img4 = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
img5 = cv.cvtColor(img,cv.COLOR_BGR2YCrCb)

色彩空间转换使用同一个函数cv.cvtColor。分别转换成HSVYUVGRAYYCrCb空间。

for i in range(1):
    plt.subplot(221), plt.imshow(img2)
    plt.title('HSV Image'), plt.xticks([]),plt.yticks([])
    plt.subplot(222), plt.imshow(img3)
    plt.title('YUV Image'),plt.xticks([]),plt.yticks([])
    plt.subplot(223), plt.imshow(img4)
    plt.title('GRAY Image'), plt.xticks([]),plt.yticks([])
    plt.subplot(224), plt.imshow(img5)
    plt.title('YCrCb Image'),plt.xticks([]),plt.yticks([])
    plt.show()

画出四幅图片手动居中

在这里插入图片描述

找到特定颜色

lower_hsv = np.array([26,43,46])
upper_hsv = np.array([34,255,255])
mask = cv.inRange(img2, lower_hsv, upper_hsv)

使用cv.inRange函数找到特定的颜色,输入参数分别为(图片,要找的颜色下边界,要找的颜色上边界)

使用色彩空间是HSV的图片,因为这个空间对颜色比较敏感。

找到黄色的区域有哪些,就要知道黄色对应的区间的上下边界。如下图所示:我们只需要看图找颜色就可以了。

在这里插入图片描述

下面是原图和找到黄色的对比图:

在这里插入图片描述

有一点need考虑的是:经过inRange的图像应该是二值的,为什么我的黄色还是黄色呢?留给你自己想把

在这里插入图片描述

代码

https://github.com/Clayygou/python-opencv/tree/master/Color_space_conversion

python opencv 检测特定颜色

import cv2
import numpy as np
 
cap = cv2.VideoCapture(0)
 
# set blue thresh 设置HSV中蓝色、天蓝色范围
lower_blue = np.array([78,43,46])
upper_blue = np.array([110,255,255])
 
while(1):
    # get a frame and show 获取视频帧并转成HSV格式, 利用cvtColor()将BGR格式转成HSV格式,参数为cv2.COLOR_BGR2HSV。
    ret, frame = cap.read()
    cv2.imshow('Capture', frame)
    # change to hsv model
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
 
    # get mask 利用inRange()函数和HSV模型中蓝色范围的上下界获取mask,mask中原视频中的蓝色部分会被弄成白色,其他部分黑色。
    mask = cv2.inRange(hsv, lower_blue, upper_blue)
    cv2.imshow('Mask', mask)
 
    # detect blue 将mask于原视频帧进行按位与操作,则会把mask中的白色用真实的图像替换:
    res = cv2.bitwise_and(frame, frame, mask=mask)
    cv2.imshow('Result', res)
 
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
 
cap.release()
cv2.destroyAllWindows()

 


参考资料

相关文章

  • python内置map和six.moves.map的区别点整理

    发布:2020-02-13

    今天小编就为大家分享一篇对python内置map和six.moves.map的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • 实用自动化运维Python脚本分享

    发布:2022-07-06

    给网友朋友们带来一篇关于Python的教程,这篇文章主要介绍了关于实用自动化运维Python脚本分享,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下


  • python对html过滤处理实例详解

    发布:2019-08-15

    今天小编就为大家分享一篇python对html过滤处理的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • Python self参数详细介绍

    发布:2023-04-25

    事实上,Python只是规定,无论是构造方法还是实例方法,最少要包含一个参数,并没有规定该参数的具体名称。之所以将其命名为self,只是程序员之间约定俗成的一种习惯,遵守这个约定,可以使我们编写的代码具有更好的可读性


  • Python基于pillow库实现生成图片水印

    发布:2021-04-13

    这篇文章主要介绍了Python基于pillow库实现生成图片水印,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下


  • python中如何定义类

    python中如何定义类

    发布:2022-11-07

    为网友们分享了关于python的教程,python中使用class关键字定义类,类名的命名规则是每个单词的首字母都要大写;类是用来描述具有相同属性和方法的对象的集合,对象是类的实例,类中的函数成为方法。


  • python解析excel文件的方法

    发布:2020-02-01

    这篇文章主要介绍了python自动化测试之如何解析excel文件,今天我们就把不同模块处理excel文件的方法做个总结,直接做封装,方便我们以后直接使用,增加工作效率。,需要的朋友可以参考下


  • Python用try except处理程序异常的三种方法总结

    发布:2019-06-08

    这篇文章主要介绍了Python使用try except处理程序异常的三种常用方法,结合实例形式分析了Python基于try except语句针对异常的捕获、查看、回溯等相关操作技巧,需要的朋友可以参考下


网友讨论