docs: public void process( D derivX , D derivY , GrayU8 binaryEdges )
  	{
  		InputSanityCheck.checkSameShape(derivX,derivY,binaryEdges);
  
  		int w = derivX.width-regionSize+1;
  		int h = derivY.height-regionSize+1;
  
  		foundLines.reshape(derivX.width / regionSize, derivX.height / regionSize);
  		foundLines.reset();
  
  		// avoid partial regions/other image edge conditions by being at least the region's radius away
  		for( int y = 0; y < h; y += regionSize) {
  			int gridY = y/regionSize;
  			// index of the top left pixel in the region being considered
  			// possible over optimization
  			int index = binaryEdges.startIndex + y*binaryEdges.stride;
  			for( int x = 0; x < w; x+= regionSize , index += regionSize) {
  				int gridX = x/regionSize;
  				// detects edgels inside the region
  				detectEdgels(index,x,y,derivX,derivY,binaryEdges);
  
  				// find lines inside the region using RANSAC
  				findLinesInRegion(foundLines.get(gridX,gridY));
  			}
  		}
  	}