A method for structure from motion processing in a computer vision system, the method comprising: receiving a plurality of tracks of estimated two dimensional, 2D, locations of points in a plurality of sequential frames captured by a monocular camera; generating a cloud of three dimensional, 3D, points by, for each track of the plurality of tracks; triangulating an estimated location of a 3D point based on the 2D locations in the track; and including the 3D point in the cloud when a size of a subtended angle of the 3D point and a projection error of the 3D point indicate that the 3D point is sufficiently robust for inclusion, wherein the subtended angle of the 3D point is determined from three 2D points corresponding to locations of an interest point in each of three consecutive frames, and the subtended angle is formed by the intersection at the 3D point of the left, repectively right, rays passing through the optical center of the camera on the one hand, and the measured 2D point location in the first, repectively last, of the three consecutive frames on the other hand, and wherein the projection error quantifies how closely an estimate of a 3D point recreates the true projection of a measured 2D point; wherein the size of the subtended angle and the projection error are tested against one or more of a plurality of pairs of progressively smaller respective threshold values to determine whether the 3D point is sufficiently robust, wherein a pair of threshold values consists of an angle size threshold and projection error threshold; and characterized in that if either the subtended angle size or the projection error fail the respective threshold comparison test against a pair of respective threshold values, the threshold comparison tests are tried again against the next pair of respective threshold values, and wherein a 3D point is pruned if the threshold comparison tests against all pairs of respective threshold values are tried unsuccessfully. receiving a plurality of tracks of estimated two dimensional, 2D, locations of points in a plurality of sequential frames captured by a monocular camera; generating a cloud of three dimensional, 3D, points by, for each track of the plurality of tracks; triangulating an estimated location of a 3D point based on the 2D locations in the track; and including the 3D point in the cloud when a size of a subtended angle of the 3D point and a projection error of the 3D point indicate that the 3D point is sufficiently robust for inclusion, wherein the subtended angle of the 3D point is determined from three 2D points corresponding to locations of an interest point in each of three consecutive frames, and the subtended angle is formed by the intersection at the 3D point of the left, repectively right, rays passing through the optical center of the camera on the one hand, and the measured 2D point location in the first, repectively last, of the three consecutive frames on the other hand, and wherein the projection error quantifies how closely an estimate of a 3D point recreates the true projection of a measured 2D point; wherein the size of the subtended angle and the projection error are tested against one or more of a plurality of pairs of progressively smaller respective threshold values to determine whether the 3D point is sufficiently robust, wherein a pair of threshold values consists of an angle size threshold and projection error threshold; and characterized in that if either the subtended angle size or the projection error fail the respective threshold comparison test against a pair of respective threshold values, the threshold comparison tests are tried again against the next pair of respective threshold values, and wherein a 3D point is pruned if the threshold comparison tests against all pairs of respective threshold values are tried unsuccessfully.