public <T extends CameraModel>T process() {
		if( zhang99 == null )
			throw new IllegalArgumentException("Please call configure first.");
		zhang99.setVerbose(verbose,0);
		if( !zhang99.process(observations) ) {
			throw new RuntimeException("Zhang99 algorithm failed!");
		}

		structure = zhang99.getStructure();

		errors = zhang99.computeErrors();

		foundIntrinsic = zhang99.getCameraModel();
		foundIntrinsic.width = imageWidth;
		foundIntrinsic.height = imageHeight;

		return (T)foundIntrinsic;
	}
public < T extends CameraModel > T process ( ) { if ( zhang99 == null ) throw new IllegalArgumentException ( "Please call configure first." ) ; zhang99 . setVerbose ( verbose , 0 ) ; if ( ! zhang99 . process ( observations ) ) { throw new RuntimeException ( "Zhang99 algorithm failed!" ) ; } structure = zhang99 . getStructure ( ) ; errors = zhang99 . computeErrors ( ) ; foundIntrinsic = zhang99 . getCameraModel ( ) ; foundIntrinsic . width = imageWidth ; foundIntrinsic . height = imageHeight ; return ( T ) foundIntrinsic ; }
After calibration points have been found this invokes the Zhang99 algorithm to
estimate calibration parameters.  Error statistics are also computed.