docs: public boolean process(List<AssociatedPair> points , DMatrixRMaj foundH ) {
  		if (points.size() < 4)
  			throw new IllegalArgumentException("Must be at least 4 points.");
  
  		// Have to normalize the points. Being zero mean is essential in its derivation
  		LowLevelMultiViewOps.computeNormalization(points, N1, N2);
  		LowLevelMultiViewOps.applyNormalization(points,N1,N2,X1,X2);
  
  		//  Construct the linear system which is used to solve for H[6] to H[8]
  		constructA678();
  
  		// Solve for those elements using the null space
  		if( !solverNull.process(A,1,nullspace))
  			return false;
  
  		DMatrixRMaj H = foundH;
  		H.data[6] = nullspace.data[0];
  		H.data[7] = nullspace.data[1];
  		H.data[8] = nullspace.data[2];
  
  		// Determine H[0] to H[5]
  		H.data[2] = -(XP_bar[0]*H.data[6] + XP_bar[1]*H.data[7]);
  		H.data[5] = -(XP_bar[2]*H.data[6] + XP_bar[3]*H.data[7]);
  
  		backsubstitution0134(P_plus,X1,X2,H.data);
  
  		// Remove the normalization
  		HomographyDirectLinearTransform.undoNormalizationH(foundH,N1,N2);
  
  		CommonOps_DDRM.scale(1.0/foundH.get(2,2),foundH);
  
  		return true;
  	}