- 博客(10)
- 收藏
- 关注
原创 opencv: solvePnP和matlab: estimateWorldCameraPose 比较
世界坐标系 corners_3d: N×3,数据类型np.float32,图像坐标系 corners_2d: N×2,数据类型np.float32,内参矩阵 K: 3×3,数据类型np.float32,畸变 dist一般设置为: np.zeros((1, 5))rvecs: 旋转向量,tvecs: 位移向量(这里我理解应该是和旋转矩阵中的位移保持一致的),然后转换为旋转矩阵的形式。记 Ro = gt_mat[:3, :3],to = gt_mat[:3, 3:]
2024-05-13 22:23:56 351 3
原创 ubuntu22.04 RTX4090安装pycuda问题(求教)
显卡驱动版本cuda12.2,运行版本12.0,安装pytorch版本对应cuda12.1。
2023-12-28 14:03:18 659 3
原创 获取当前目前文件名踩坑
list = os.listdir(),希望用这个获得顺序文件名称的话,记得一定一定一定要对文件名重新补零,如果原始文件名是1,2,3,4,……10,11,12这种,那得到的list文件名是按字符串排序的而不是数值,这样一一对应关系就会出错,所以一定要对文件重新补零,都变成01,02,03,04,……11,12这样,用这个实现 "{:02d}".format(i),0几d表示补零之后的位数,比如"{:02d}".format(3)会得到03。
2023-11-21 20:13:14 60
原创 3D Slicer配准CT
Crtl+4打开扩展插件管理界面,Install from file,安装扩展插件。2、Crop Volume模块:用来裁剪感兴趣区并生成Volume,设置配准区域。需要一定时间配准,而且有时候需要检查一下结果是不是对齐了。
2023-11-20 10:13:45 577
原创 验证使用cv2.solvePnPRansac()求解相机外参
测试了一下这两个函数的计算结果,对于某些角度和位移,发现虽然solvePnPRansac应该对异常值有更好的鲁棒性,但我这里输入的2D,3D点坐标的人为生成的理论值,理论上不应该出现差距这么大的结果,看来一下inliers发现有些点是不被计算在模型里面的,暂时没搞清楚原因。这里想的是参考opencv的cv2.solvePnP和cv2.solvePnPRansac()函数(前面已经发现cv2.calibrateCamera()只是会把传入的内参矩阵作为初始化的位置开始求解)。
2023-09-20 15:08:47 773
原创 旋转矩阵的几种python函数实现方法
1、旋转矩阵定义——欧拉角可以看出x-y-z内旋等价于z-y-x外旋。参考这个函数很好用,支持很多旋转表达形式(欧拉角,旋转向量,旋转矩阵,修正的Rodrigues参数,四元数)之间的转换,用的比较多的欧拉角和旋转矩阵之间的转换,但也踩了 一些坑。这里 'xyz' 表示旋转轴的顺序,,例如:R.from_euler('xyz', euler, degrees=True),它等价于 rx = euler[0],ry = euler[1],rz = euler[2],R = Rz*Ry*Rx;
2023-09-19 20:26:31 1779
原创 验证使用cv2.calibrateCamera()进行相机标定误差
但虽然重投影结果看上去可接受,但求到的旋转角度和位移差的也太多了,不太可行。我怀疑可能是因为只给了一个轴的角度,在分解矩阵的时候可能约束不够求不出来。(不过多张图即使是每个图也只给一个轴角度但只要给的角度不同求出的结果误差也比较小),对于某些情况下计算得到的内参可能没法用,就结果来看,计算得到的内参也有误差,还要考虑一下这个误差是不是可接受的。修改了一下角度后发现内参矩阵的误差变小了,而且重投影误差的值变得更小了。,输入cv2.calibrateCamera()函数,看能不能反求出。
2023-09-19 16:47:45 1275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人