docs: public void process( DMatrixRMaj F , List<AssociatedPair> observations ,
  						 int width , int height ) {
  
  		int centerX = width/2;
  		int centerY = height/2;
  
  		MultiViewOps.extractEpipoles(F, epipole1, epipole2);
  		checkEpipoleInside(width, height);
  
  
  		// compute the transform H which will send epipole2 to infinity
  		SimpleMatrix R = rotateEpipole(epipole2,centerX,centerY);
  		SimpleMatrix T = translateToOrigin(centerX,centerY);
  		SimpleMatrix G = computeG(epipole2,centerX,centerY);
  
  		SimpleMatrix H = G.mult(R).mult(T);
  
  		//Find the two matching transforms
  		SimpleMatrix Hzero = computeHZero(F,epipole2,H);
  
  		SimpleMatrix Ha = computeAffineH(observations,H.getDDRM(),Hzero.getDDRM());
  
  		rect1.set(Ha.mult(Hzero).getDDRM());
  		rect2.set(H.getDDRM());
  	}