在Python上将Kinect输出转换为HSV错误

在Python上将Kinect输出转换为HSV错误,python,opencv,kinect,Python,Opencv,Kinect,我正在使用Kinect和Python,我需要将Kinect的输出转换为HSV,但我看到了执行Python程序时的错误 这是我的一段代码: while True: depth = getDepthMap() blur = cv2.GaussianBlur(depth, (5, 5), 0) image = (blur * 255).round().astype(np.uint8) hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV

我正在使用Kinect和Python,我需要将Kinect的输出转换为HSV,但我看到了执行Python程序时的错误

这是我的一段代码:

while True:
    depth = getDepthMap()
    blur = cv2.GaussianBlur(depth, (5, 5), 0)
    image = (blur * 255).round().astype(np.uint8)
    hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)  # convert it to hsv    
输出:


不确定您想用它实现什么,但是,1)深度数据是一个通道,通常16位您将其视为正常BGR图像,2)深度数据不应视为正常图像,除非您特别想这样做。每个像素告诉你它的深度,而不是颜色,如果你模糊了它,那么你可能会增加或减少像素的深度,有时可能会增加很多。3) 如果您仍然想使用它,请将其视为灰度图像。我阅读了您的完整代码,发现您实际上首先将其转换为uint8。应将其视为灰度,无需更多转换。这意味着您必须将其转换为灰色的HSV,但由于opencv没有这种转换,您需要将其转换为BGR,然后再转换为HSV…我想使用Kinect检测我的机器人上最近的对象。tnxxxx使用类似KMeans的lotmabe可以帮助您识别或多或少在相同范围内的对象,如果您添加RGB相机的颜色信息,您可能会获得更好的结果。如果你能过滤背景,你可以尝试使用类似水滴探测器的东西。但是,您应该首先查看深度分段教程和论文,以了解如何继续。这不是一件小事,非常感谢!!!它的工作,我可以用Kinect和mark Objects检测最近的物体不确定你想用它实现什么,但是,1)深度数据是一个通道,通常是16位,你把它当作正常的BGR图像处理,2)深度数据不应该当作正常图像处理,除非你特别想这样做。每个像素告诉你它的深度,而不是颜色,如果你模糊了它,那么你可能会增加或减少像素的深度,有时可能会增加很多。3) 如果您仍然想使用它,请将其视为灰度图像。我阅读了您的完整代码,发现您实际上首先将其转换为uint8。应将其视为灰度,无需更多转换。这意味着您必须将其转换为灰色的HSV,但由于opencv没有这种转换,您需要将其转换为BGR,然后再转换为HSV…我想使用Kinect检测我的机器人上最近的对象。tnxxxx使用类似KMeans的lotmabe可以帮助您识别或多或少在相同范围内的对象,如果您添加RGB相机的颜色信息,您可能会获得更好的结果。如果你能过滤背景,你可以尝试使用类似水滴探测器的东西。但是,您应该首先查看深度分段教程和论文,以了解如何继续。这不是一件小事,非常感谢!!!它的工作和我可以检测最近的物体与Kinect和马克对象
cv2.error: /root/opencv-3.0.0/modules/imgproc/src/color.cpp:7564: error: (-215) scn == 3 || scn == 4 in function cvtColor