/** * Extract the data from the optimised parameter vector and put it back into * our camera model * * @param point * the optimised parameter vector */ private void updateEstimates(RealVector point) { final CameraIntrinsics intrinsic = cameras.get(0).intrinsicParameters; intrinsic.setFocalLengthX(point.getEntry(0)); intrinsic.setFocalLengthY(point.getEntry(1)); intrinsic.setPrincipalPointX(point.getEntry(2)); intrinsic.setPrincipalPointY(point.getEntry(3)); intrinsic.setSkewFactor(point.getEntry(4)); intrinsic.k1 = point.getEntry(5); intrinsic.k2 = point.getEntry(6); for (int i = 0; i < cameras.size(); i++) { final Camera e = cameras.get(i); final double[] rv = new double[] { point.getEntry(i * 6 + 7), point.getEntry(i * 6 + 8), point.getEntry(i * 6 + 9) }; e.rotation = TransformUtilities.rodrigues(rv); e.translation.setX(point.getEntry(i * 6 + 10)); e.translation.setY(point.getEntry(i * 6 + 11)); e.translation.setZ(point.getEntry(i * 6 + 12)); } }
/** * Extract the data from the optimised parameter vector and put it back into * our camera model * * @param point * the optimised parameter vector */ private void updateEstimates(RealVector point) { final CameraIntrinsics intrinsic = cameras.get(0).intrinsicParameters; intrinsic.setFocalLengthX(point.getEntry(0)); intrinsic.setFocalLengthY(point.getEntry(1)); intrinsic.setPrincipalPointX(point.getEntry(2)); intrinsic.setPrincipalPointY(point.getEntry(3)); intrinsic.setSkewFactor(point.getEntry(4)); intrinsic.k1 = point.getEntry(5); intrinsic.k2 = point.getEntry(6); intrinsic.k3 = point.getEntry(7); intrinsic.p1 = point.getEntry(8); intrinsic.p2 = point.getEntry(9); for (int i = 0; i < cameras.size(); i++) { final Camera e = cameras.get(i); final double[] rv = new double[] { point.getEntry(i * 6 + 10), point.getEntry(i * 6 + 11), point.getEntry(i * 6 + 12) }; e.rotation = TransformUtilities.rodrigues(rv); e.translation.setX(point.getEntry(i * 6 + 13)); e.translation.setY(point.getEntry(i * 6 + 14)); e.translation.setZ(point.getEntry(i * 6 + 15)); } }