OpenCV (cv2) 中的 unactorPoints 与 Python 错误结果

2024-04-01

我尝试纠正图像和该图像上的一些点。 校正图像效果非常好(这部分代码不是我提供的):

(mapx, mapy) = cv2.initUndistortRectifyMap(camera_matrix,dist_coefs,np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]]),newCameraMatrix,(int(resolution*w), int(resolution*h)), cv2.CV_32FC1)
RectImg = cv2.remap(img, mapx,mapy,cv2.INTER_LINEAR )

但是,当我使用 unactorPoints 和相同的参数校正点时,我得到(据我看来)错误的坐标。

point_file = np.loadtxt(fn)
point_matrix = np.zeros(shape=(nr_points,1,2))

# fill Pointfile in n x 1 x 2-Matrix
for each in range(0, nr_points):
    point_matrix[each][0][0] = point_file[each][0]
    point_matrix[each][0][1] = point_file[each][1]

point_matrix_new = cv2.undistortPoints(point_matrix, newCameraMatrix, dist_coefs)

这些是我正在使用的参数(newCameraMatrix 和 dist_coefs):

    [[  4.93906295e+02   0.00000000e+00   1.24539714e+03]
     [  0.00000000e+00   4.92616567e+02   1.03814593e+03]
     [  0.00000000e+00   0.00000000e+00   1.00000000e+00]]
    [  5.93179211e-01   3.59577119e-02  -3.34062329e-05  -8.92301489e-05
      -5.27895858e-04   9.28762999e-01   1.46636733e-01   0.00000000e+00]

我也不确定输出实际上是什么。结果值是图像坐标还是传感器坐标以及哪个单位?我只能找到 cv 的 unactorPoints 文档(http://docs.opencv.org/modules/imgproc/doc/geometric_transformations.html http://docs.opencv.org/modules/imgproc/doc/geometric_transformations.html)但不适用于 cv2。

example(图像尺寸 = 2448 x 2048 像素/传感器尺寸 = 8.6 x 6.6 毫米

输入(点_矩阵):

[[[    0.     0.]]

 [[ 2448.     0.]]

 [[    0.  2048.]]

 [[ 2448.  2048.]]

 [[ 1224.  1024.]]]

输出(point_matrix_new):

[[[-6.49236118 -5.42726306]]

 [[ 6.39989444 -5.5358653 ]]

 [[-6.50237385  5.28935346]]

 [[ 6.58981334  5.54673511]]

 [[-0.04336093 -0.02874159]]]

感谢您的帮助!


所以我发现了我的错误:我必须在 cv2.un DistorPoints 中使用旧的和新的相机矩阵,就像在 cv2.initUn DistrifyMap 中一样。

所以为了纠正它我只是使用了这段代码:

point_matrix_new = cv2.undistortPoints(point_matrix,camera_matrix,dist_coefs,P=newCameraMatrix)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCV (cv2) 中的 unactorPoints 与 Python 错误结果 的相关文章

随机推荐

  • 具有嵌套属性的 Best_In_Place 内联编辑

    我目前正在尝试使用 best in place gem 来在 HTML 表中进行内联编辑 我正在购物车的显示视图中显示购物车 在购物车的显示视图中 我可以添加订单项 创建 LineItem 时 还会创建一个带有 lineItem id 的新
  • 标记文本解析器,如 Objective-C 中的 stackoverflow 格式化程序

    我正在使用 Objective C 创建标记编辑器 我需要以下功能 识别块的分界 例如 block 删除开始和结束 标签 例如 下一个文本是 bold 变为 下一个文本为粗体 确定新上下文中标记文本的开始和结束位置 下一个文本是粗体 编辑
  • 多种类型实体的数据库设计

    我需要开发一个应用程序 其中有 4 种类型的用户实体 管理员 合作伙伴 公司和客户 每种用户类型都有自己的一组详细信息 并且他们都应该能够执行常见操作 例如发送消息 付款等等 这些操作应保留在单个表中 但它们需要引用确切的用户 无论其类型如
  • Jasper Report 中的 Java Beans 列表中的 pass 列表

    我正在使用 Jasper Report 和 Servlet Bean 团队看起来像 private int tid private String title private List
  • HornetQ JMSException:无法创建会话工厂

    我正在尝试直接实例化 JMS 资源 而不使用远程 HORNETQ 的 JNDI 我正在 Eclipse IDE 中运行我的测试代码 设置我的类路径以使用 HornetQ 2 2 5 库 目标HornetQ是版本2 1 2 Final 我认为
  • 如何使用 C# 检索 .config 文件中的自定义配置部分列表? [复制]

    这个问题在这里已经有答案了 当我尝试使用检索 config 文件中的部分列表时 Configuration config ConfigurationManager OpenExeConfiguration ConfigurationUser
  • c#/.Net Socket.Shutdown

    我认识到此类问题已有很长的历史 但我使用此问题的方式必须是正确的 net 方式 但它似乎不起作用 我有一个简单的同步 IP 服务器守护进程 它执行一个简单的 AcceptSocket 执行一些操作 socket send socket sh
  • 如何在 jQuery 中发送 PUT/DELETE 请求?

    GET get POST post 关于什么PUT DELETE 你可以使用ajax http docs jquery com Ajax jQuery ajax options method ajax url script cgi type
  • 将 axios POST 请求与 moxios 匹配

    是否可以使用 moxios 模拟对 POST 请求的回复 不仅通过 URL 匹配 还通过 POST 正文匹配 事后检查尸体对我来说也很有用 这就是我现在正在做的事情 据我所知 没有特定于方法的存根方法 describe createCode
  • 应该创建多种文档类型或多个索引吗?

    我们为企业托管许多网站 每个企业都会有许多他们可能希望通过 ES 进行索引和搜索的文档类型 通常 每个业务拥有的文档类型数量少于 20 个 每个类型可能拥有少于 100k 个文档 通常要少得多 我不确定应该如何设置这些网站的数据 我应该将它
  • ice_cube 的营业时间

    我如何能够在单一时间表中规定餐厅的营业时间 周一至周五 8 点至 16 点非常简单 schedule Schedule new Time parse Date yesterday to s 8 00 duration gt 60 60 8
  • MVC 4 和 JsonResult 格式

    这段代码的结果格式有问题 public JsonResult getCategorias int id var res from c in db Categorias where id HasValue c CategoriaPadre i
  • 水平和垂直并排有许多小 div 和一个大 div?

    我应该如何创建这种结构 我的第一个想法是将四个粉红色组合成一个橙色 这样我就得到了 4pinksVS1orange 现在下一个难题是将它们并排放置 我不知道 好吧 我知道一些 hxcks 但它们很容易被打破 然后 拼图是底行有四个粉红色的拼
  • 浏览器中文本区域处理不一致

    这是我在下面提供的标记中看到的内容 没有一个浏览器将文本区域保留在容器中 这很不方便 但并不是什么大问题 然而 令人烦恼的是 无论我做什么 我都无法摆脱 Chrome 中文本区域的下边距 有什么建议么 Here is everything
  • JavaScript - 模拟单击​​上下文菜单

    我正在尝试为网站创建网络自动化 我正在模拟点击 通常我会向如下所示的元素添加 ID 并使用 Chrome 开发者控制台触发单击 并且它始终有效 p s 下面的问题已经过时了 我实际上正在尝试从 web whatsapp com 的上下文菜单
  • PyInstaller ImportError:没有名为“pyfiglet.fonts”的模块

    我正在尝试使用 PyInstaller 编译 Asciimatics 的演示脚本之一 希望最终能够为我正在开发的基于文本的游戏创建一个简单的 GUI 它返回以下错误 C Users X Documents Python Scripts as
  • 使用 DoubleClick“无法加载广告:3”

    我正在使用 DoubleClick 在 Android 应用程序中设置广告 但无法显示最终的广告 有人能帮我吗 当我通过添加 addTestDevice xxx 来测试广告时 我得到了测试广告 但是当我删除此行时 出现以下错误 W 广告 广
  • 隐藏 Woocommerce 订阅价格中的“免费试用”文本,但保留注册费

    问题的第一部分 隐藏 Woocommerce 订阅价格中的 免费试用 文本 在这篇很棒的帖子中得到了回答 隐藏 Woocommerce 订阅价格中的 免费试用 文本 https stackoverflow com questions 489
  • 隐藏滚动条(启用滚动)

    我有一个包含 2 列和多行的表 table border 0 tr td something td td div class bubble div td tr tr td something1 td td div class bubble
  • OpenCV (cv2) 中的 unactorPoints 与 Python 错误结果

    我尝试纠正图像和该图像上的一些点 校正图像效果非常好 这部分代码不是我提供的 mapx mapy cv2 initUndistortRectifyMap camera matrix dist coefs np array 1 0 0 0 1