我正在尝试将3D模型投影到2D平面,我发现我应该使用投影方程C*((R*X)+T)
来实现。 C
,相机校准矩阵的计算方法如下:
C =[f 0 px;
0 f py;
0 0 1];
首先,我想问一下相机校准矩阵中使用的焦距f
。我应该使用像素或mm的值吗?如果在mm中我怎么能得到它?
其次我真的不知道px
和py
变量代表什么我得到了一些关于我正在使用MATLAB中的exifread
函数处理的数据的信息是我得到的信息:
Sharpness: 0
Contrast: 0
SceneCaptureType: 0
FocalLengthIn35mmFilm: 27
DigitalZoomRatio: 1
WhiteBalance: 0
ExposureMode: 0
SceneType: 1
FileSource: 3
SensingMethod: 2
PixelYDimension: 3000
PixelXDimension: 4000
ColorSpace: 1
FlashpixVersion: '0100'
FocalLength: 4.9000
Flash: 1
LightSource: 0
MeteringMode: 4
MaxApertureValue: 3.6150
ExposureBiasValue: 0
ApertureValue: 3.6150
ShutterSpeedValue: 2.3220
CompressedBitsPerPixel: 2.8149
ComponentsConfiguration: [1 2 3 0]
DateTimeDigitized: '2011:06:26 16:55:08'
DateTimeOriginal: '2011:06:26 16:55:08'
ExifVersion: '0221'
ISOSpeedRatings: 100
ExposureProgram: 2
FNumber: 3.5000
ExposureTime: 0.2000
Copyright: 'Copyright 2010'
YCbCrPositioning: 2
DateTime: '2011:06:26 16:55:08'
Software: ' 0.8913'
ResolutionUnit: 2
YResolution: 96
XResolution: 96
Orientation: 1
Model: 'SAMSUNG ES30/VLUU ES30'
Make: 'SAMSUNG'
Thumbnail: [1x1 struct]
请px
和py
参考其中任何一个吗?
答案 0 :(得分:2)
px和py是主要点的坐标。在理想的相机上,它将成为图像的中心,因此您可以使用宽度/ 2,高度/ 2作为开始。对于实际值,您应该使用校准算法。
f应为像素。