p2p网站开发思路方案,便捷网站建设推荐,网上购物系统功能模块,东营做网站公司目录 目标 
改变颜色空间 
对象追踪 
如何找到要追踪的HSV值#xff1f; 目标 在本教程中#xff0c;你将学习如何将图像从一个色彩空间转换到另一个#xff0c;像BGR↔灰色#xff0c;BGR↔HSV等  除此之外#xff0c;我们还将创建一个应用程序#xff0c;以提取视频中的…目录 目标 
改变颜色空间 
对象追踪 
如何找到要追踪的HSV值 目标 在本教程中你将学习如何将图像从一个色彩空间转换到另一个像BGR↔灰色BGR↔HSV等  除此之外我们还将创建一个应用程序以提取视频中的彩色对象  你将学习以下功能cv.cvtColorcv.inRange等。  
改变颜色空间 
OpenCV中有超过150种颜色空间转换方法。但是我们将研究只有两个最广泛使用的,BGR↔灰色和BGR↔HSV。 
对于颜色转换我们使用cv函数。cvtColor(input_image, flag)其中flag决定转换的类型。 
对于BGR→灰度转换我们使用标志cv.COLOR_BGR2GRAY。类似地对于BGR→HSV我们使用标志cv.COLOR_BGR2HSV。要获取其他标记只需在Python终端中运行以下命令: import cv2 as cv  flags  [i for i in dir(cv) if i.startswith(COLOR_)]  print( flags ) 注意 HSV的色相范围为[0,179]饱和度范围为[0,255]值范围为[0,255]。不同的软件使用不同的规模。因此如果你要将OpenCV值和它们比较你需要将这些范围标准化。 对象追踪 
现在我们知道了如何将BGR图像转换成HSV我们可以使用它来提取一个有颜色的对象。在HSV中比在BGR颜色空间中更容易表示颜色。在我们的应用程序中我们将尝试提取一个蓝色的对象。方法如下: 取视频的每一帧  转换从BGR到HSV颜色空间  我们对HSV图像设置蓝色范围的阈值  现在单独提取蓝色对象我们可以对图像做任何我们想做的事情。  
下面是详细注释的代码: import cv2 as cv import numpy as np cap  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,255])     # 设置HSV的阈值使得只取蓝色     mask  cv.inRange(hsv, lower_blue, upper_blue)     # 将掩膜和图像逐像素相加     res  cv.bitwise_and(frame,frame, mask mask)     cv.imshow(frame,frame)     cv.imshow(mask,mask)     cv.imshow(res,res)     k  cv.waitKey(5)  0xFF     if k  27:         break cv.destroyAllWindows() 下图显示了对蓝色对象的跟踪 注意 图像中有一些噪点。我们将在后面的章节中看到如何删除它们。 这是对象跟踪中最简单的方法。一旦学习了轮廓的功能你就可以做很多事情例如找到该对象的质心并使用它来跟踪对象仅通过将手移到相机前面以及其他许多有趣的东西就可以绘制图表。 如何找到要追踪的HSV值 
这是在stackoverflow.com上发现的一个常见问题。它非常简单你可以使用相同的函数cv.cvtColor()。你只需传递你想要的BGR值而不是传递图像。例如要查找绿色的HSV值请在Python终端中尝试以下命令: green  np.uint8([[[0,255,0 ]]])  hsv_green  cv.cvtColor(green,cv.COLOR_BGR2HSV)  print( hsv_green ) [[[ 60 255 255]]] 现在把[H- 10,100,100]和[H 10,255, 255]分别作为下界和上界。除了这个方法之外你可以使用任何图像编辑工具(如GIMP或任何在线转换器)来查找这些值但是不要忘记调整HSV范围。