Skip to content

Camera space origin is not at screen center #30

@pekkavaa

Description

@pekkavaa

When a face is centered on camera the reported translation X and Y coordinates are not zeros. A possible reason for this is that the camera intrinsic matrix has offsets computed for the wrong axis when doing the position solving.

The camera matrix is

self.camera = np.array([[width, 0, width/2], [0, width, height/2], [0, 0, 1]], np.float32)

so that means c_x = width/2 and c_y = height/2 but then later image_pts that is passed to solvePnP() is a vector of (y,x) points so self.camera translates the Y coordinates with width/2 and vice-versa for the point X coordinates.

I'd submit a patch to fix this but the code is somewhat tricky so I'm not sure I'd get it right.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions