@ SuppressWarnings ( "unchecked" ) public static < I extends ImageBase < I > , IT extends InvertibleTransform > StitchingFromMotion2D < I , IT > createVideoStitch ( double maxJumpFraction , ImageMotion2D < I , IT > motion2D , ImageType < I > imageType ) { StitchingTransform < IT > transform ; if ( motion2D . getTransformType ( ) == Affine2D_F64 . class ) { transform = ( StitchingTransform ) FactoryStitchingTransform . createAffine_F64 ( ) ; } else { transform = ( StitchingTransform ) FactoryStitchingTransform . createHomography_F64 ( ) ; } InterpolatePixel < I > interp ; if ( imageType . getFamily ( ) == ImageType . Family . GRAY || imageType . getFamily ( ) == ImageType . Family . PLANAR ) { interp = FactoryInterpolation . createPixelS ( 0 , 255 , InterpolationType . BILINEAR , BorderType . EXTENDED , imageType . getImageClass ( ) ) ; } else { throw new IllegalArgumentException ( "Unsupported image type" ) ; } ImageDistort < I , I > distorter = FactoryDistort . distort ( false , interp , imageType ) ; distorter . setRenderAll ( false ) ; return new StitchingFromMotion2D <> ( motion2D , distorter , transform , maxJumpFraction ) ; }
Estimates the image motion then combines images together . Typically used for mosaics and stabilization .