【python-opencv】转换颜色空间

【python-opencv】转换颜色空间,第1张

概述1、改变颜色空间 OpenCV中有超过150种颜色空间转换方法。但是我们将研究只有两个最广泛使用的,BGR↔灰色和BGR↔HSV。 对于颜色转换,我们使用cv函数。cvtColor(input_ima

@H_403_2@1、改变颜色空间

OpenCV中有超过150种颜色空间转换方法。但是我们将研究只有两个最广泛使用的,BGR↔灰色和BGR↔HSV。

对于颜色转换,我们使用cv函数。cvtcolor(input_image,flag),其中flag决定转换的类型。

对于BGR→灰度转换,我们使用标志cv.color_BGR2GRAY。类似地,对于BGR→HSV,我们使用标志cv.color_BGR2HSV。要获取其他标记,只需在Python终端中运行以下命令:

flags=[i for i in dir(cv) if i.startswith('color_')]

部分结果:

[color_BAYER_BG2BGR',color_BAYER_BG2BGRAcolor_BAYER_BG2BGR_EAcolor_BAYER_BG2BGR_VNGcolor_BAYER_BG2GRAYcolor_BAYER_BG2RGBcolor_BAYER_BG2RGBAcolor_BAYER_BG2RGB_EAcolor_BAYER_BG2RGB_VNGcolor_BAYER_GB2BGR',
。。。

@H_403_2@2、对象跟踪

现在我们知道了如何将BGR图像转换成HSV,我们可以使用它来提取一个有颜色的对象。在HSV中比在BGR颜色空间中更容易表示颜色。在我们的应用程序中,我们将尝试提取一个蓝色的对象。方法如下: - 取视频的每一帧 - 转换从BGR到HSV颜色空间 - 我们对HSV图像设置蓝色范围的阈值 - 现在单独提取蓝色对象,我们可以对图像做任何我们想做的事情。

import cv2 as cv numpy as npcap = cv.VIDeoCapture(0)while(1):    # 读取帧    _,frame = cap.read()     转换颜色空间 BGR 到 HSV    hsv = cv.cvtcolor(frame,cv.color_BGR2HSV)     定义HSV中蓝色的范围    lower_blue = np.array([110,50,50])    upper_blue = np.array([130,255])     设置HSV的阈值使得只取蓝色    mask = cv.inRange(hsv,lower_blue,upper_blue)     将掩膜和图像逐像素相加    res = cv.bitwise_and(frame,frame,mask= mask)    cv.imshow(framemaskresif k == 27:        breakcv.destroyAllwindows()

下图显示了对蓝色对象的跟踪:

@H_403_2@注意 图像中有一些噪点。我们将在后面的章节中看到如何删除它们。 这是对象跟踪中最简单的方法。一旦学习了轮廓的功能,你就可以做很多事情,例如找到该对象的质心并使用它来跟踪对象,仅通过将手移到相机前面以及其他许多有趣的东西就可以绘制图表。

@H_403_2@如何找到跟踪的HSV值?

这是在stackoverflow.com上发现的一个常见问题。它非常简单,你可以使用相同的函数@H_403_2@cv.cvtcolor()。你只需传递你想要的BGR值,而不是传递图像。例如,要查找绿色的HSV值,请在Python终端中尝试以下命令:

>>> green = np.uint8([[[0,0 ]]])>>> hsv_green = cv.cvtcolor(green,cv.color_BGR2HSV)>>> print( hsv_green )[[[ 60 255 255]]]

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

 

参考:

http://woshicver.com/FifthSection/4_1_%E6%94%B9%E5%8F%98%E9%A2%9C%E8%89%B2%E7%A9%BA%E9%97%B4/

总结

以上是内存溢出为你收集整理的【python-opencv】转换颜色空间全部内容,希望文章能够帮你解决【python-opencv】转换颜色空间所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1190015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存