【问题标题】:Convert pixel coordinates to cartesian coordinates [closed]将像素坐标转换为笛卡尔坐标
【发布时间】:2020-07-05 04:48:39
【问题描述】:

如何将像素/屏幕坐标转换为笛卡尔坐标(x,y)?

我在图片上的信息是(见图):

vFov 以度为单位,hFov 以度为单位,像素宽度,像素高度

基本上我想要的是获取图像上的任何像素,并计算它与图像中心的相对度数。

【问题讨论】:

  • 你的图片还是很不清楚,仍然包含“度数”有没有尝试过?
  • 对不起,我不明白。

标签: c++ coordinates coordinate-systems coordinate-transformation cartesian-coordinates


【解决方案1】:

由于没有足够的信息,您永远不能 - 按原则 - 将像素坐标转换为 3d 坐标。 这与 c++ 或任何语言无关。 想想你用相机拍的照片。它是 2D,但是真实的单词是 3D,并且图片中不包含第三维(模糊除外)。

【讨论】:

  • 但是,如果您有两张来自不同位置的图像,您可以通过一些工作和一些不确定性来测量对象的 3d 位置。
  • 嗯,是的。有道理。我认为我必须采取不同的方法并改用 2d。你知道怎么做吗? :) 感谢您的回复。
  • 我正在尝试的想法是制作一个相机图像拼接器 360。我需要知道所拍摄图像中像素的确切位置,以便将其放置在正确的位置在球体上。我的想法是有一个形象。取图像的中心并计算它与中心的距离,并将其应用为相机坐标上的旋转,以获得球体上的确切像素位置。抱歉,我很难解释。最终目标是将图像放置在 equirectangular 图像上的正确位置
  • 拼接图像是一项不同的任务。对于拼接,您需要在原始图像的重叠区域中找到匹配区域(这可以通过使用傅里叶变换的互相关来完成)。此外,您需要对每个相机帧进行一些失真校正并将结果映射到球体(通过某种投影方法,例如墨卡托投影)还有可以为您完成这些任务的库,例如 opencv -
  • 不,这不是一项不同的任务。这是该过程的一部分。我知道图像的确切位置(以度为单位)。我需要找到像素响应图像中心的位置(以度为单位)。然后我想我可以弄清楚其余的。不想使用 opencv 自动拼接器。它很慢,不适用于深色图像。那是针对随机方向拍摄的照片。这很酷,但不是我需要的。 :)
【解决方案2】:
x - w/2
h/2 - y

其中 w 和 h 是屏幕的尺寸。 嗯?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多