(1)大佬的视频
Create Point Clouds With Your Smartphone_哔哩哔哩_bilibili
站着不动,找个特征多一点的地方,比如对着一栋大楼。手持手机,以身体为中心,旋转拍摄一小段视频,本次测试视频10s。
- #引入opencv模块
- import cv2 as cv
-
- videofile = "D:\\RGBD_CAMERA\\python_3d_process\\video\\VID_20221204_104946.mp4"
-
-
- imgpath= "D:\\RGBD_CAMERA\\python_3d_process\\tiffimage\\"
-
- cap = cv.VideoCapture(videofile)
- # fps = cap.get(cv.CAP_PROP_FPS)
-
- icount = 0
- # namebase = 3150000
- # namebase = 3160000
- # namebase = 3170000
- # namebase = 3180000
- # namebase = 3190000
- # namebase = 3200000
- namebase = 1
-
-
-
- #先创建窗口,这时候可以调整大小了
- cv.namedWindow("video",cv.WINDOW_NORMAL)
-
- while (True):
- # 读帧
- ret, frame = cap.read()
- icount = icount +1
- if ret is None:
- break
- # 保存图像
- # if icount %5 == 0:
- namebase = namebase +1
- cv.imwrite(imgpath+str(namebase)+".tiff",frame)
- cv.imshow("video", frame)
- cv.waitKey(3)
-
- # if cv2.waitKey(int(1000 / fps)) & 0xFF == ord('q'):
- # break
- # 释放cap
- cap.release()
- # 关闭窗口,清除程序所占用的内存
- cv.destroyAllWindows()

(1)下载一个,有试用版
(2)其它下载请勿用于商业用途
(1)点击Workflow/Add Phots在跳出的窗口中选择所有文件

(2)点击Workflow/Align Photos

(3)在跳出的窗口中选择Medium和Sequential,而后点击OK
(1)最终使用了如下操作,没有勾选Generic preselection并选择High

(2)如下简单操作没有选用,不然会告诉我部分图片失败....

(4)耐心等待完成

(5)点击Workflow/Build Dense Cloud

(6)在跳出的窗口中选择如下
(1)选用了如下选项

(2)没有使用如下选项

(7)点击Ok后耐心等待

(8)计算完毕后可以使用Model/View Mode/Dense Cloud看一波

(9)最后导出一下获得的点云File/Export/Export Points...

(10)存为各种类型都行,本次存为.pcd格式

4、显示一下
(1)测试代码
- # pip install -i https://pypi.tuna.tsinghua.edu.cn/simple open3d
- # pip install open3d -i https://pypi.tuna.tsinghua.edu.cn/simple
- #xachen 显示可以了,20221128
-
-
- import open3d as o3d
- import numpy as np
-
-
- # path = "D:/RGBD_CAMERA/python_3d_process/1_hezi.pcd"
- path = "D:/RGBD_CAMERA/python_3d_process/chenmobile.pcd"
- pcd = o3d.io.read_point_cloud(path) # path为文件路径
- o3d.visualization.draw_geometries([pcd],
- window_name="窗口名字测试",
- point_show_normal=False,
- width=800, # 窗口宽度
- height=600) # 窗口高度
(2)显示结果,感觉怪怪的