在深度图上大致检测物体
Detect approximately objects on depth map
我想在我的深度图上找到大致的对象。
现在我的过程如下:
1.深度归一化
2.阈值只获取最近的对象
3.高斯模糊
4. Canny边缘检测
5.轮廓检测
但是,我找不到我的对象周围的框。其实我不知道这种深度图是否可行...
我 table 上有三个对象:一盒食物和两个杯子。
我想在我的对象周围找到一个盒子。
有没有办法只通过图像处理来做到这一点?
任何帮助将不胜感激。
非常感谢您。
您可以使用 OpenCV 执行此操作。看看下面的解决方案。
我使用问题中提供的深度图作为我的输入图像。我对深度图的灰度图进行了二值阈值
ret,th = cv2.threshold(gray,127,255, 1)
并获得了以下内容:
现在为了填补图像中的空白,我进行了形态学闭合操作
kernel = np.ones((15,15),np.uint8)
dilate = cv2.morphologyEx(th, cv2.MORPH_CLOSE, kernel, 3)
然后我找到轮廓使用:
contours,hierarchy = cv2.findContours(dilate,2,1)
并使用以下方法绘制它们:
cv2.drawContours(img, contours, -1, (0,255,0), 3)
终于得到了这个:
希望这就是您要找的:)
我想在我的深度图上找到大致的对象。 现在我的过程如下: 1.深度归一化 2.阈值只获取最近的对象 3.高斯模糊 4. Canny边缘检测 5.轮廓检测
但是,我找不到我的对象周围的框。其实我不知道这种深度图是否可行...
我 table 上有三个对象:一盒食物和两个杯子。
我想在我的对象周围找到一个盒子。
有没有办法只通过图像处理来做到这一点? 任何帮助将不胜感激。
非常感谢您。
您可以使用 OpenCV 执行此操作。看看下面的解决方案。
我使用问题中提供的深度图作为我的输入图像。我对深度图的灰度图进行了二值阈值
ret,th = cv2.threshold(gray,127,255, 1)
并获得了以下内容:
现在为了填补图像中的空白,我进行了形态学闭合操作
kernel = np.ones((15,15),np.uint8)
dilate = cv2.morphologyEx(th, cv2.MORPH_CLOSE, kernel, 3)
然后我找到轮廓使用:
contours,hierarchy = cv2.findContours(dilate,2,1)
并使用以下方法绘制它们:
cv2.drawContours(img, contours, -1, (0,255,0), 3)
终于得到了这个:
希望这就是您要找的:)