OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 4412|回复: 6

像素坐标推导世界坐标

[复制链接]
发表于 2019-3-19 20:29:57 | 显示全部楼层 |阅读模式
小弟初入CV,请教各位兄弟想要实现由像素坐标推导世界坐标
已经做了:
1、根据一组标定板图片求得内参矩阵
2、根据新的图片,求得此图片平面的外参矩阵,
然后,不懂的就是,内参外参都有了,等式左边的尺度因子S怎么求出来??


s[u,v,1] = A*B*[X,Y,0,1]


u,v:像素坐标
X,Y:世界坐标
A、B:内参外参


回复

使用道具 举报

发表于 2019-3-22 20:44:23 | 显示全部楼层
学习OpenCV4 第18、19章
回复 支持 1 反对 0

使用道具 举报

发表于 2019-3-22 12:03:54 | 显示全部楼层
计算过程中,S可以消掉的,找本机器视觉方面的书看看,一般里面都讲到这个推导过程
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-3-23 00:01:34 | 显示全部楼层
去看了一看,知道怎么消除S了,感谢

现在有个问题:   

corners2 = cv2.cornerSubPix(gray_cali, corners, (11, 11), (-1, -1), criteria)

    _, rvecs, tvecs, _ = cv2.solvePnPRansac(objp, corners2, mtx, dist)
   
    rvmatrix, _ = cv2.Rodrigues(rvecs)

    b = np.delete(rvmatrix, 2, axis=1)

    H = np.hstack((b, tvecs))

请问python这样求单应性矩阵H 对么

我算出来的世界坐标系里的标定板平面中的实物长度,总是不太对劲
回复 支持 反对

使用道具 举报

发表于 2019-3-23 10:48:34 | 显示全部楼层
可以改写成这样,
[s*u,s*v,s] = A*B*[X,Y,0,1]

就可以在推导过程里消去s了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-23 15:34:24 | 显示全部楼层
lans625 发表于 2019-3-23 10:48
可以改写成这样,
[s*u,s*v,s] = A*B*[X,Y,0,1]

嗯嗯 我想这样想了一下
然后右边的0我把它省了
最后变成了[s*u,s*v,s]=A*[r1 r2 t]*[X,Y,1]

您看我在楼上码的代码对不  求的是[r1 r2 t]
回复 支持 反对

使用道具 举报

发表于 2019-3-27 12:16:20 | 显示全部楼层
谢谢了提供了这么好的学习资料
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-5-21 03:06 , Processed in 0.011334 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表