Il y a beaucoup de gens qui font des choses similaires, mais j'aimerais vous présenter le package ROS que j'ai créé il y a longtemps. Je l'ai posté sur GitHub. https://github.com/moriitkys/color_depth_edit
Le point de vente de ce package est que vous pouvez obtenir la profondeur correspondant à un pixel (x, y) avec RVB, et vous pouvez visualiser et modifier l'image de profondeur. The selling point of this package is that you can get the Depth corresponding to the pixel (x, y) with RGB, and you can visualize and edit the Depth image.
Dans la fonction depth_callback ci-dessous depth_img = depth_array * 255/65535 depth_img2 = np.array(depth_img, dtype=np.uint8) depth_color_img = np.stack((depth_img2,)*3, axis=-1) Visualisation de la profondeur et #Extract the center of depth image (20x20 pixels) depth_array2 = depth_array[h/2-10:h/2+10, w/2-10:w/2+10] depth_array3 = depth_array2[depth_array2 > 0] self.m_depth = np.mean(depth_array3) Pour obtenir la valeur de profondeur avec.
color_depth_edit.py
def depth_callback(self, data):
try:
self._depth_pub.publish(data)
cv_dimage = self._bridge.imgmsg_to_cv2(data, 'passthrough')
except CvBridgeError, e:
print e
h, w = cv_dimage.shape[:2]
#you should change under 2 lines if you don't use realsense
depth_array = np.array(cv_dimage, dtype=np.float32)
depth_img = depth_array * 255/65535
depth_img2 = np.array(depth_img, dtype=np.uint8)
depth_color_img = np.stack((depth_img2,)*3, axis=-1)
# Extract the center of depth image (20x20 pixels)
depth_array2 = depth_array[h/2-10:h/2+10, w/2-10:w/2+10]
depth_array3 = depth_array2[depth_array2 > 0]
self.m_depth = np.mean(depth_array3)
print('The mean depth value at the center of image is', self.m_depth)
depth_out = self.img_edit(depth_color_img)
try:
self._depth_pub.publish(self._bridge.cv2_to_imgmsg(depth_out, 'bgr8'))
except CvBridgeError, e:
print e
Si vous ouvrez rqt au moment de l'exécution, cela ressemble à ceci.
Utilisez la synchronisation pour mettre à niveau vers un package qui correspond à la synchronisation d'acquisition RVB et Profondeur.