3D模型到2D平面的透视投影

时间:2011-07-02 23:46:24

标签: matlab

我正在尝试将3D模型投影到2D平面,我发现我应该使用投影方程C*((R*X)+T)来实现。 C,相机校准矩阵的计算方法如下:

C =[f 0 px;
    0 f py;
    0 0 1];

首先,我想问一下相机校准矩阵中使用的焦距f。我应该使用像素或mm的值吗?如果在mm中我怎么能得到它?

其次我真的不知道pxpy变量代表什么我得到了一些关于我正在使用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]

pxpy参考其中任何一个吗?

1 个答案:

答案 0 :(得分:2)

px和py是主要点的坐标。在理想的相机上,它将成为图像的中心,因此您可以使用宽度/ 2,高度/ 2作为开始。对于实际值,您应该使用校准算法。

f应为像素。