Opencv 调整图像大小能给不同的图像以世界坐标变换吗?
这可能看起来很愚蠢,但我读的关于相机图像世界坐标系及其中间转换的文章越多,我就越感到困惑 我正在使用Blender 2.78合成的深度贴图,并使用它们进行处理。这还包括裁剪和调整图像大小。我有我的相机矩阵(内在、外在参数)和透视投影矩阵 我在这些裁剪、调整大小的图像中检测到一些关键点,并试图获得这些关键点的世界坐标。如果我没有错的话,关键点是在图像坐标系中定义的。但由于裁剪,它们的位置与我使用Blender生成的原始图像不同 使用摄像机矩阵将这些关键点坐标转换为世界坐标,会给我准确的世界坐标吗?是否有办法验证这些图像关键点的实际世界坐标 编辑 使用分辨率为960x540的混合器渲染的原始图像: 使用检测到的SIFT关键点(分辨率250x200)预处理、裁剪和调整大小后的图像:Opencv 调整图像大小能给不同的图像以世界坐标变换吗?,opencv,image-processing,blender,camera-calibration,coordinate-transformation,Opencv,Image Processing,Blender,Camera Calibration,Coordinate Transformation,这可能看起来很愚蠢,但我读的关于相机图像世界坐标系及其中间转换的文章越多,我就越感到困惑 我正在使用Blender 2.78合成的深度贴图,并使用它们进行处理。这还包括裁剪和调整图像大小。我有我的相机矩阵(内在、外在参数)和透视投影矩阵 我在这些裁剪、调整大小的图像中检测到一些关键点,并试图获得这些关键点的世界坐标。如果我没有错的话,关键点是在图像坐标系中定义的。但由于裁剪,它们的位置与我使用Blender生成的原始图像不同 使用摄像机矩阵将这些关键点坐标转换为世界坐标,会给我准确的世界坐标吗?
由于主点和像素大小已更改,您必须调整相机内部。或者您只需通过反向调整大小/裁剪操作更改关键点位置 由于主点和像素大小已更改,因此必须调整相机内部。或者您只需通过反向调整大小/裁剪操作更改关键点位置 谢谢你的回复。我正在使用openCV+python进行处理。当你说改变相机的本质,是不是意味着使用类似的东西?另外,如果你能再解释一下,你所说的反向调整大小和裁剪到底是什么意思,那将非常有帮助!对于我的项目,我只需要获得一些特定的ROI,以便后续步骤,因此我必须对图像进行大小调整和裁剪。如果我错了,请纠正我,我可以通过固定的相机位置从blender自身获得对象点。我有图像点,即图像中关键点的坐标。但我不会有他们之间的通信。对吗?为了得到摄像机的内部特征,我需要使用上面的注释中描述的函数来解决这些问题。如果你想使用原始图像到世界的函数和原始图像的摄像机内部特征和外部特征,你必须知道原始图像中的关键点位置。如果按系数0.5缩放图像,则必须将关键点位置乘以2。如果从左边框移除L像素,从上边框移除T像素,则必须将L添加到该点的x坐标,将T添加到该点的y坐标。最好是,如果您添加一些示例图像和关键点,您应该向执行关键点的管道模块提供ROI和大小调整信息或新的相机内部信息。除了米卡的回答:存在用于部分校准相机姿势确定的方法之外,还有其他方法。这里有一个不同焦距的,谢谢你的回复。我正在使用openCV+python进行处理。当你说改变相机的本质,是不是意味着使用类似的东西?另外,如果你能再解释一下,你所说的反向调整大小和裁剪到底是什么意思,那将非常有帮助!对于我的项目,我只需要获得一些特定的ROI,以便后续步骤,因此我必须对图像进行大小调整和裁剪。如果我错了,请纠正我,我可以通过固定的相机位置从blender自身获得对象点。我有图像点,即图像中关键点的坐标。但我不会有他们之间的通信。对吗?为了得到摄像机的内部特征,我需要使用上面的注释中描述的函数来解决这些问题。如果你想使用原始图像到世界的函数和原始图像的摄像机内部特征和外部特征,你必须知道原始图像中的关键点位置。如果按系数0.5缩放图像,则必须将关键点位置乘以2。如果从左边框移除L像素,从上边框移除T像素,则必须将L添加到该点的x坐标,将T添加到该点的y坐标。最好是,如果您添加一些示例图像和关键点,您应该向执行关键点的管道模块提供ROI和大小调整信息或新的相机内部信息。除了米卡的回答:存在用于部分校准相机姿势确定的方法之外,还有其他方法。这里有一个用于改变焦距