gpt4 book ai didi

opencv - 使用 imgmsg_to_cv2 [python] 在 ROS 中获取灰度深度图像

转载 作者:行者123 更新时间:2023-12-02 17:38:18 27 4
gpt4 key购买 nike

我正在使用 Kinect v1,我想从 ROS 中的 channel “/camera/depth_registered/image”获取灰度模式下的深度图像。正如我发现的 here ,我可以通过使用函数imgmsg_to_cv2来做到这一点。我的深度消息的默认desired_encoding 是“32FC1”,我保留了它。问题是当我使用 cv2.imshow() 函数来显示它时,我得到二进制图像......当我对 RGB 图像做同样的事情时,一切都显示得很好......

任何帮助表示赞赏!

最佳答案

所以毕竟,我找到了一个解决方案,你可以在这里看到:

def Depthcallback(self,msg_depth): # TODO still too noisy!
try:
# The depth image is a single-channel float32 image
# the values is the distance in mm in z axis
cv_image = self.bridge.imgmsg_to_cv2(msg_depth, "32FC1")
# Convert the depth image to a Numpy array since most cv2 functions
# require Numpy arrays.
cv_image_array = np.array(cv_image, dtype = np.dtype('f8'))
# Normalize the depth image to fall between 0 (black) and 1 (white)
# http://docs.ros.org/electric/api/rosbag_video/html/bag__to__video_8cpp_source.html lines 95-125
cv_image_norm = cv2.normalize(cv_image_array, cv_image_array, 0, 1, cv2.NORM_MINMAX)
# Resize to the desired size
cv_image_resized = cv2.resize(cv_image_norm, self.desired_shape, interpolation = cv2.INTER_CUBIC)
self.depthimg = cv_image_resized
cv2.imshow("Image from my node", self.depthimg)
cv2.waitKey(1)
except CvBridgeError as e:
print(e)

但是,结果并不像我从 得到的那样完美。 ImageView ROS的节点,但它仍然是可以接受的!

关于opencv - 使用 imgmsg_to_cv2 [python] 在 ROS 中获取灰度深度图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47751323/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com