[PYTHON] Package ROS pour obtenir des images RVB-D à partir du capteur RVB-D

Je souhaite créer un nœud ROS qui acquiert des images de capteurs RGB-D tels que RealSense (amélioration prévue)

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. color_depth_edit_result.PNG

!! !! !! Updater prévu dans le futur! !! !!

Utilisez la synchronisation pour mettre à niveau vers un package qui correspond à la synchronisation d'acquisition RVB et Profondeur.

Recommended Posts

Package ROS pour obtenir des images RVB-D à partir du capteur RVB-D
Téléchargez des images de profil (icônes) pour tout le monde depuis Slack
De l'installation de ROS pour Windows au contrôle de fonctionnement
Appelez votre propre module python à partir du package ROS