code: boolean localize(QrCode.Alignment pattern, float guessY, float guessX)
  	{
  		// sample along the middle. Try to not sample the outside edges which could confuse it
  		for (int i = 0; i < arrayY.length; i++) {
  			float x = guessX - 1.5f + i*3f/12.0f;
  			float y = guessY - 1.5f + i*3f/12.0f;
  
  			arrayX[i] = reader.read(guessY,x);
  			arrayY[i] = reader.read(y,guessX);
  		}
  
  		// TODO turn this into an exhaustive search of the array for best up and down point?
  		int downX = greatestDown(arrayX);
  		if( downX == -1) return false;
  		int upX = greatestUp(arrayX,downX);
  		if( upX == -1) return false;
  
  		int downY = greatestDown(arrayY);
  		if( downY == -1 ) return false;
  		int upY = greatestUp(arrayY,downY);
  		if( upY == -1 ) return false;
  
  		pattern.moduleFound.x = guessX - 1.5f + (downX+upX)*3f/24.0f;
  		pattern.moduleFound.y = guessY - 1.5f + (downY+upY)*3f/24.0f;
  
  		reader.gridToImage((float)pattern.moduleFound.y,(float)pattern.moduleFound.x,pattern.pixel);
  
  		return true;
  	}
docs: Localizizes the alignment pattern crudely by searching for the black box in the center by looking
  for its edges in the gray scale image
  
  @return true if success or false if it doesn't resemble an alignment pattern