本人程式新手,最近新接觸到點雲覺得挺有趣,找到了一個資料集,試著自己操作了一下,但是合併的時候一直不成功,想知道問題到底出在哪裡。
使用的是redwood-3dscan數據集
用了這兩張圖片及對應的深度圖
以及相機的內部參數
width=640, height=480, fx=525.0, fy=525.0, cx=319.5, cy=239.5
還有外部參數矩陣
(上)
[[0.991329, 0.0559279, -0.119017, 2.33994]
[-0.0703969, 0.990158, -0.121068, 2.58752]
[0.111073, 0.128395, 0.985497, -0.274198]
[0, 0, 0, 1]]
(下)
[[0.949165, 0.1907, -0.250508, 2.54486]
[-0.196732, 0.980476, 0.000979962, 2.41068]
[0.245799, 0.0483527, 0.968132, -0.351573]
[0, 0, 0, 1]]
程式碼如下
rgb_1 = o3d.io.read_image("上圖路徑")
rgb_2 = o3d.io.read_image("下圖路徑")
depth_1 = o3d.io.read_image("上圖深度")
depth_2 = o3d.io.read_image("下圖深度")
rgbd_1 = o3d.geometry.RGBDImage.create_from_color_and_depth(rgb_1, depth_1, 1000.0, 5.0, False)
rgbd_2 = o3d.geometry.RGBDImage.create_from_color_and_depth(rgb_2, depth_2, 1000.0, 5.0, False)
intrinsics = o3d.camera.PinholeCameraIntrinsic(
width=640, height=480, fx=525.0, fy=525.0, cx=319.5, cy=239.5)
extrinsics_1 = [[0.991329, 0.0559279, -0.119017, 2.33994], [-0.0703969, 0.990158, -0.121068, 2.58752], [0.111073, 0.128395, 0.985497, -0.274198], [0.0, 0.0, 0.0, 1.0]]
extrinsics_2 = [[0.949165, 0.1907, -0.250508, 2.54486], [-0.196732, 0.980476, 0.000979962, 2.41068], [0.245799, 0.0483527, 0.968132, -0.351573], [0.0, 0.0, 0.0, 1.0]]
pcd_1 = o3d.geometry.PointCloud.create_from_rgbd_image(rgbd_1, intrinsics, extrinsics_2)
pcd_2 = o3d.geometry.PointCloud.create_from_rgbd_image(rgbd_2, intrinsics, extrinsics_1)
pcds = pcd_1 + pcd_2
但是合併出來的點雲有明顯的錯位
不知道是不是哪裡出錯了?
還請大家多多指教,感恩