[PYTHON] ROS-Paket zum Abrufen von RGB-D-Bildern vom RGB-D-Sensor

Ich möchte einen ROS-Knoten erstellen, der Bilder von einem RGB-D-Sensor wie RealSense erfasst (zur Verbesserung geplant).

Es gibt viele Leute, die ähnliche Dinge tun, aber ich möchte das ROS-Paket vorstellen, das ich vor langer Zeit gemacht habe. Ich habe es auf GitHub gepostet. https://github.com/moriitkys/color_depth_edit

Das Verkaufsargument dieses Pakets ist, dass Sie die Tiefe, die einem Pixel (x, y) entspricht, mit RGB erhalten und das Tiefenbild visualisieren und bearbeiten können. 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.

In der Funktion depth_callback unten 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) Tiefenvisualisierung und #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) Um den Tiefenwert mit zu erhalten.

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

Wenn Sie rqt zur Laufzeit öffnen, sieht es so aus. color_depth_edit_result.PNG

!! !! !! Updater in Zukunft geplant! !! !!

Verwenden Sie die Synchronisierung, um ein Upgrade auf ein Paket durchzuführen, das dem Erfassungszeitpunkt von RGB und Tiefe entspricht.

Recommended Posts

ROS-Paket zum Abrufen von RGB-D-Bildern vom RGB-D-Sensor
Laden Sie Profilbilder (Symbole) für alle von Slack herunter
Von der Installation von ROS für Windows bis zur Funktionsprüfung
Rufen Sie Ihr eigenes Python-Modul aus dem ROS-Paket auf