Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 如何将x、y像素映射到世界坐标系_Image Processing_Opencv - Fatal编程技术网

Image processing 如何将x、y像素映射到世界坐标系

Image processing 如何将x、y像素映射到世界坐标系,image-processing,opencv,Image Processing,Opencv,在我的项目中,我计算x,y的像素和Z的距离相机在毫米。所以我想利用深度来计算x,y,z 谁能告诉我怎么做 我有以下资料: x、 从图像中获取y像素 与摄影机和对象的距离 距离相机和物体的距离不断变化,因为我从不同的距离拍摄图像 如果图像坐标中有x,y,摄像机矩阵,世界坐标中有z,那么需要将图像坐标放入齐次向量中,乘以摄像机矩阵的倒数,然后乘以z_世界坐标。一开始可能不直观的是,世界坐标中的单位并不重要。在乘以相机矩阵的倒数后,定义了无单位的x/z比。将结果单位乘以z_world。你可以用毫米,英

在我的项目中,我计算x,y的像素和Z的距离相机在毫米。所以我想利用深度来计算x,y,z

谁能告诉我怎么做

我有以下资料:

  • x、 从图像中获取y像素
  • 与摄影机和对象的距离 距离相机和物体的距离不断变化,因为我从不同的距离拍摄图像

  • 如果图像坐标中有x,y,摄像机矩阵,世界坐标中有z,那么需要将图像坐标放入齐次向量中,乘以摄像机矩阵的倒数,然后乘以z_世界坐标。一开始可能不直观的是,世界坐标中的单位并不重要。在乘以相机矩阵的倒数后,定义了无单位的x/z比。将结果单位乘以z_world。你可以用毫米,英寸,英里,任何单位来测量它,你得到的向量将有相同的单位

    cv::Matx31f world_cord(x_im,y_im,1);         //here measured in pixels
    world_cord = camera_matrix.inv()*world_cord; //representing a ratio x/z,y/z
    world_cord *= z_world;                       //now x,y,z are measured in units of z_world
    

    世界线现在包含x世界、y世界、z世界

    你有校准过的照相机吗?你已经知道到物体的距离了吗?那么你已经知道Z了,你想要x和y吗?@hammer是的,我的问题是Z是以mm为单位计算的,现在我想要x,y w.r.t距离。x,y是以像素为单位从图像中获取的,是的,相机经过校准,我有一个内在的矩阵,我想要得到x,y,mm,而不是像素。有没有办法用深度来转换它们这就是它的作用。x_world和y_world在末尾以mm为单位进行测量