docs: public <D extends ImageGray<D>> void transform(D derivX , D derivY , GrayU8 binary )
  	{
  		InputSanityCheck.checkSameShape(derivX,derivY,binary);
  
  		transform.reshape(derivX.width,derivY.height);
  		ImageMiscOps.fill(transform,0);
  
  		originX = derivX.width/2;
  		originY = derivX.height/2;
  		candidates.reset();
  
  		if( derivX instanceof GrayF32)
  			_transform((GrayF32)derivX,(GrayF32)derivY,binary);
  		else if( derivX instanceof GrayS16)
  			_transform((GrayS16)derivX,(GrayS16)derivY,binary);
  		else if( derivX instanceof GrayS32)
  			_transform((GrayS32)derivX,(GrayS32)derivY,binary);
  		else
  			throw new IllegalArgumentException("Unsupported derivative image type: "+derivX.getClass().getSimpleName());
  	}