├── .gitignore ├── LICENSE ├── README.md ├── build.m ├── db_matlab_root_dir.m ├── db_root_dir.m ├── db_util ├── auxiliar │ ├── get_stab_seqs.m │ ├── loadvar.m │ ├── pascal_colormap.m │ └── subdir.m ├── db_attributes.m ├── db_frame_ids.m ├── db_get_properties.m ├── db_read_annot.m ├── db_read_image.m ├── db_read_result.m ├── db_results_dir.m ├── db_seqs.m ├── db_set_properties.m ├── db_write_result.m └── private │ ├── attributes.txt │ ├── db_annot_dir.m │ ├── db_im_dir.m │ ├── db_im_size.m │ ├── db_sing_mult_obj.m │ ├── db_year.m │ ├── read_list_from_file.m │ ├── strsplit.m │ └── substitute_file_text.m ├── demos ├── demo_eval_multiple.m ├── demo_eval_your_method.m └── demo_sweep.m ├── eval_results ├── bvs-F-train-2016-single-480p.mat ├── bvs-F-trainval-2016-single-480p.mat ├── bvs-F-val-2016-single-480p.mat ├── bvs-J-train-2016-single-480p.mat ├── bvs-J-trainval-2016-single-480p.mat ├── bvs-J-val-2016-single-480p.mat ├── bvs-T-train-2016-single-480p.mat ├── bvs-T-trainval-2016-single-480p.mat ├── bvs-T-val-2016-single-480p.mat ├── cut-F-val-2016-single-480p.mat ├── cut-J-val-2016-single-480p.mat ├── cut-T-val-2016-single-480p.mat ├── cvos-F-train-2016-single-480p.mat ├── cvos-F-trainval-2016-single-480p.mat ├── cvos-F-val-2016-single-480p.mat ├── cvos-J-train-2016-single-480p.mat ├── cvos-J-trainval-2016-single-480p.mat ├── cvos-J-val-2016-single-480p.mat ├── cvos-T-train-2016-single-480p.mat ├── cvos-T-trainval-2016-single-480p.mat ├── cvos-T-val-2016-single-480p.mat ├── fcp-F-train-2016-single-480p.mat ├── fcp-F-trainval-2016-single-480p.mat ├── fcp-F-val-2016-single-480p.mat ├── fcp-J-train-2016-single-480p.mat ├── fcp-J-trainval-2016-single-480p.mat ├── fcp-J-val-2016-single-480p.mat ├── fcp-T-train-2016-single-480p.mat ├── fcp-T-trainval-2016-single-480p.mat ├── fcp-T-val-2016-single-480p.mat ├── fst-F-train-2016-single-480p.mat ├── fst-F-trainval-2016-single-480p.mat ├── fst-F-val-2016-single-480p.mat ├── fst-J-train-2016-single-480p.mat ├── fst-J-trainval-2016-single-480p.mat ├── fst-J-val-2016-single-480p.mat ├── fst-T-train-2016-single-480p.mat ├── fst-T-trainval-2016-single-480p.mat ├── fst-T-val-2016-single-480p.mat ├── gt-T-train-2016-single-480p.mat ├── gt-T-trainval-2016-single-480p.mat ├── gt-T-val-2016-single-480p.mat ├── hvs-F-train-2016-single-480p.mat ├── hvs-F-trainval-2016-single-480p.mat ├── hvs-F-val-2016-single-480p.mat ├── hvs-J-train-2016-single-480p.mat ├── hvs-J-trainval-2016-single-480p.mat ├── hvs-J-val-2016-single-480p.mat ├── hvs-T-train-2016-single-480p.mat ├── hvs-T-trainval-2016-single-480p.mat ├── hvs-T-val-2016-single-480p.mat ├── jmp-F-train-2016-single-480p.mat ├── jmp-F-trainval-2016-single-480p.mat ├── jmp-F-val-2016-single-480p.mat ├── jmp-J-train-2016-single-480p.mat ├── jmp-J-trainval-2016-single-480p.mat ├── jmp-J-val-2016-single-480p.mat ├── jmp-T-train-2016-single-480p.mat ├── jmp-T-trainval-2016-single-480p.mat ├── jmp-T-val-2016-single-480p.mat ├── key-F-train-2016-single-480p.mat ├── key-F-trainval-2016-single-480p.mat ├── key-F-val-2016-single-480p.mat ├── key-J-train-2016-single-480p.mat ├── key-J-trainval-2016-single-480p.mat ├── key-J-val-2016-single-480p.mat ├── key-T-train-2016-single-480p.mat ├── key-T-trainval-2016-single-480p.mat ├── key-T-val-2016-single-480p.mat ├── mcg-F-train-2016-single-480p.mat ├── mcg-F-trainval-2016-single-480p.mat ├── mcg-F-val-2016-single-480p.mat ├── mcg-J-train-2016-single-480p.mat ├── mcg-J-trainval-2016-single-480p.mat ├── mcg-J-val-2016-single-480p.mat ├── mcg-T-train-2016-single-480p.mat ├── mcg-T-trainval-2016-single-480p.mat ├── mcg-T-val-2016-single-480p.mat ├── msg-F-train-2016-single-480p.mat ├── msg-F-trainval-2016-single-480p.mat ├── msg-F-val-2016-single-480p.mat ├── msg-J-train-2016-single-480p.mat ├── msg-J-trainval-2016-single-480p.mat ├── msg-J-val-2016-single-480p.mat ├── msg-T-train-2016-single-480p.mat ├── msg-T-trainval-2016-single-480p.mat ├── msg-T-val-2016-single-480p.mat ├── msk-F-train-2016-single-480p.mat ├── msk-F-trainval-2016-single-480p.mat ├── msk-F-val-2016-single-480p.mat ├── msk-J-train-2016-single-480p.mat ├── msk-J-trainval-2016-single-480p.mat ├── msk-J-val-2016-single-480p.mat ├── msk-T-train-2016-single-480p.mat ├── msk-T-trainval-2016-single-480p.mat ├── msk-T-val-2016-single-480p.mat ├── nlc-F-train-2016-single-480p.mat ├── nlc-F-trainval-2016-single-480p.mat ├── nlc-F-val-2016-single-480p.mat ├── nlc-J-train-2016-single-480p.mat ├── nlc-J-trainval-2016-single-480p.mat ├── nlc-J-val-2016-single-480p.mat ├── nlc-T-train-2016-single-480p.mat ├── nlc-T-trainval-2016-single-480p.mat ├── nlc-T-val-2016-single-480p.mat ├── ofl-F-train-2016-single-480p.mat ├── ofl-F-trainval-2016-single-480p.mat ├── ofl-F-val-2016-single-480p.mat ├── ofl-J-train-2016-single-480p.mat ├── ofl-J-trainval-2016-single-480p.mat ├── ofl-J-val-2016-single-480p.mat ├── ofl-T-train-2016-single-480p.mat ├── ofl-T-trainval-2016-single-480p.mat ├── ofl-T-val-2016-single-480p.mat ├── osvos-F-val-2016-single-480p.mat ├── osvos-J-val-2016-single-480p.mat ├── osvos-T-val-2016-single-480p.mat ├── sal-F-train-2016-single-480p.mat ├── sal-F-trainval-2016-single-480p.mat ├── sal-F-val-2016-single-480p.mat ├── sal-J-train-2016-single-480p.mat ├── sal-J-trainval-2016-single-480p.mat ├── sal-J-val-2016-single-480p.mat ├── sal-T-train-2016-single-480p.mat ├── sal-T-trainval-2016-single-480p.mat ├── sal-T-val-2016-single-480p.mat ├── sea-F-train-2016-single-480p.mat ├── sea-F-trainval-2016-single-480p.mat ├── sea-F-val-2016-single-480p.mat ├── sea-J-train-2016-single-480p.mat ├── sea-J-trainval-2016-single-480p.mat ├── sea-J-val-2016-single-480p.mat ├── sea-T-train-2016-single-480p.mat ├── sea-T-trainval-2016-single-480p.mat ├── sea-T-val-2016-single-480p.mat ├── sf-lab-F-train-2016-single-480p.mat ├── sf-lab-F-trainval-2016-single-480p.mat ├── sf-lab-F-val-2016-single-480p.mat ├── sf-lab-J-train-2016-single-480p.mat ├── sf-lab-J-trainval-2016-single-480p.mat ├── sf-lab-J-val-2016-single-480p.mat ├── sf-lab-T-train-2016-single-480p.mat ├── sf-lab-T-trainval-2016-single-480p.mat ├── sf-lab-T-val-2016-single-480p.mat ├── sf-mot-F-train-2016-single-480p.mat ├── sf-mot-F-trainval-2016-single-480p.mat ├── sf-mot-F-val-2016-single-480p.mat ├── sf-mot-J-train-2016-single-480p.mat ├── sf-mot-J-trainval-2016-single-480p.mat ├── sf-mot-J-val-2016-single-480p.mat ├── sf-mot-T-train-2016-single-480p.mat ├── sf-mot-T-trainval-2016-single-480p.mat ├── sf-mot-T-val-2016-single-480p.mat ├── trc-F-train-2016-single-480p.mat ├── trc-F-trainval-2016-single-480p.mat ├── trc-F-val-2016-single-480p.mat ├── trc-J-train-2016-single-480p.mat ├── trc-J-trainval-2016-single-480p.mat ├── trc-J-val-2016-single-480p.mat ├── trc-T-train-2016-single-480p.mat ├── trc-T-trainval-2016-single-480p.mat ├── trc-T-val-2016-single-480p.mat ├── tsp-F-train-2016-single-480p.mat ├── tsp-F-trainval-2016-single-480p.mat ├── tsp-F-val-2016-single-480p.mat ├── tsp-J-train-2016-single-480p.mat ├── tsp-J-trainval-2016-single-480p.mat ├── tsp-J-val-2016-single-480p.mat ├── tsp-T-train-2016-single-480p.mat ├── tsp-T-trainval-2016-single-480p.mat ├── tsp-T-val-2016-single-480p.mat ├── vpn-F-train-2016-single-480p.mat ├── vpn-F-trainval-2016-single-480p.mat ├── vpn-F-val-2016-single-480p.mat ├── vpn-J-train-2016-single-480p.mat ├── vpn-J-trainval-2016-single-480p.mat ├── vpn-J-val-2016-single-480p.mat ├── vpn-T-train-2016-single-480p.mat ├── vpn-T-trainval-2016-single-480p.mat └── vpn-T-val-2016-single-480p.mat ├── experiments ├── attribute_table.m ├── auxiliar │ ├── davis2json.m │ ├── davis2json_all.m │ ├── displaytable.m │ ├── separate.m │ ├── strpad.m │ └── write_to_file.m ├── database_sizes.m ├── eval_all.m ├── eval_all.py ├── eval_one.py ├── experiments_params.m ├── global_table.m ├── scatter_plot.m └── supplemental │ ├── attrib_per_seq.m │ ├── eval_per_seq.m │ └── plots_per_seq.m ├── helpers ├── combine_multiple_pngs.m └── create_submission_zip.m ├── measures ├── auxiliar │ ├── contour_upsample.m │ ├── get_longest_cont.m │ ├── private │ │ └── dist2.m │ └── sc_compute.m ├── eval_frame.m ├── eval_result.m ├── eval_sequence.m ├── f_boundary.m ├── jaccard_region.m ├── private │ ├── get_bijective_matching.m │ ├── hist_cost_2.m │ ├── mex_match_dijkstra.cpp │ ├── mex_match_dijkstra.mexa64 │ ├── mex_match_dijkstra.mexmaci64 │ ├── mex_match_dijkstra.mexw64 │ ├── p_poly_dist.m │ ├── points_dist.m │ └── segment_dist.m ├── seg2bmap.m └── t_stability.m ├── startup.m └── third-party ├── Eigen ├── Array ├── CMakeLists.txt ├── Cholesky ├── CholmodSupport ├── Core ├── Dense ├── Eigen ├── Eigen2Support ├── Eigenvalues ├── Geometry ├── Householder ├── IterativeLinearSolvers ├── Jacobi ├── LU ├── LeastSquares ├── MetisSupport ├── OrderingMethods ├── PaStiXSupport ├── PardisoSupport ├── QR ├── QtAlignedMalloc ├── SPQRSupport ├── SVD ├── Sparse ├── SparseCholesky ├── SparseCore ├── SparseLU ├── SparseQR ├── StdDeque ├── StdList ├── StdVector ├── SuperLUSupport ├── UmfPackSupport └── src │ ├── CMakeLists.txt │ ├── Cholesky │ ├── CMakeLists.txt │ ├── LDLT.h │ ├── LLT.h │ └── LLT_MKL.h │ ├── CholmodSupport │ ├── CMakeLists.txt │ └── CholmodSupport.h │ ├── Core │ ├── Array.h │ ├── ArrayBase.h │ ├── ArrayWrapper.h │ ├── Assign.h │ ├── Assign_MKL.h │ ├── BandMatrix.h │ ├── Block.h │ ├── BooleanRedux.h │ ├── CMakeLists.txt │ ├── CommaInitializer.h │ ├── CoreIterators.h │ ├── CwiseBinaryOp.h │ ├── CwiseNullaryOp.h │ ├── CwiseUnaryOp.h │ ├── CwiseUnaryView.h │ ├── DenseBase.h │ ├── DenseCoeffsBase.h │ ├── DenseStorage.h │ ├── Diagonal.h │ ├── DiagonalMatrix.h │ ├── DiagonalProduct.h │ ├── Dot.h │ ├── EigenBase.h │ ├── Flagged.h │ ├── ForceAlignedAccess.h │ ├── Functors.h │ ├── Fuzzy.h │ ├── GeneralProduct.h │ ├── GenericPacketMath.h │ ├── GlobalFunctions.h │ ├── IO.h │ ├── Map.h │ ├── MapBase.h │ ├── MathFunctions.h │ ├── Matrix.h │ ├── MatrixBase.h │ ├── NestByValue.h │ ├── NoAlias.h │ ├── NumTraits.h │ ├── PermutationMatrix.h │ ├── PlainObjectBase.h │ ├── ProductBase.h │ ├── Random.h │ ├── Redux.h │ ├── Ref.h │ ├── Replicate.h │ ├── ReturnByValue.h │ ├── Reverse.h │ ├── Select.h │ ├── SelfAdjointView.h │ ├── SelfCwiseBinaryOp.h │ ├── SolveTriangular.h │ ├── StableNorm.h │ ├── Stride.h │ ├── Swap.h │ ├── Transpose.h │ ├── Transpositions.h │ ├── TriangularMatrix.h │ ├── VectorBlock.h │ ├── VectorwiseOp.h │ ├── Visitor.h │ ├── arch │ │ ├── AltiVec │ │ │ ├── CMakeLists.txt │ │ │ ├── Complex.h │ │ │ └── PacketMath.h │ │ ├── CMakeLists.txt │ │ ├── Default │ │ │ ├── CMakeLists.txt │ │ │ └── Settings.h │ │ ├── NEON │ │ │ ├── CMakeLists.txt │ │ │ ├── Complex.h │ │ │ └── PacketMath.h │ │ └── SSE │ │ │ ├── CMakeLists.txt │ │ │ ├── Complex.h │ │ │ ├── MathFunctions.h │ │ │ └── PacketMath.h │ ├── products │ │ ├── CMakeLists.txt │ │ ├── CoeffBasedProduct.h │ │ ├── GeneralBlockPanelKernel.h │ │ ├── GeneralMatrixMatrix.h │ │ ├── GeneralMatrixMatrixTriangular.h │ │ ├── GeneralMatrixMatrixTriangular_MKL.h │ │ ├── GeneralMatrixMatrix_MKL.h │ │ ├── GeneralMatrixVector.h │ │ ├── GeneralMatrixVector_MKL.h │ │ ├── Parallelizer.h │ │ ├── SelfadjointMatrixMatrix.h │ │ ├── SelfadjointMatrixMatrix_MKL.h │ │ ├── SelfadjointMatrixVector.h │ │ ├── SelfadjointMatrixVector_MKL.h │ │ ├── SelfadjointProduct.h │ │ ├── SelfadjointRank2Update.h │ │ ├── TriangularMatrixMatrix.h │ │ ├── TriangularMatrixMatrix_MKL.h │ │ ├── TriangularMatrixVector.h │ │ ├── TriangularMatrixVector_MKL.h │ │ ├── TriangularSolverMatrix.h │ │ ├── TriangularSolverMatrix_MKL.h │ │ └── TriangularSolverVector.h │ └── util │ │ ├── BlasUtil.h │ │ ├── CMakeLists.txt │ │ ├── Constants.h │ │ ├── DisableStupidWarnings.h │ │ ├── ForwardDeclarations.h │ │ ├── MKL_support.h │ │ ├── Macros.h │ │ ├── Memory.h │ │ ├── Meta.h │ │ ├── NonMPL2.h │ │ ├── ReenableStupidWarnings.h │ │ ├── StaticAssert.h │ │ └── XprHelper.h │ ├── Eigen2Support │ ├── Block.h │ ├── CMakeLists.txt │ ├── Cwise.h │ ├── CwiseOperators.h │ ├── Geometry │ │ ├── AlignedBox.h │ │ ├── All.h │ │ ├── AngleAxis.h │ │ ├── CMakeLists.txt │ │ ├── Hyperplane.h │ │ ├── ParametrizedLine.h │ │ ├── Quaternion.h │ │ ├── Rotation2D.h │ │ ├── RotationBase.h │ │ ├── Scaling.h │ │ ├── Transform.h │ │ └── Translation.h │ ├── LU.h │ ├── Lazy.h │ ├── LeastSquares.h │ ├── Macros.h │ ├── MathFunctions.h │ ├── Memory.h │ ├── Meta.h │ ├── Minor.h │ ├── QR.h │ ├── SVD.h │ ├── TriangularSolver.h │ └── VectorBlock.h │ ├── Eigenvalues │ ├── CMakeLists.txt │ ├── ComplexEigenSolver.h │ ├── ComplexSchur.h │ ├── ComplexSchur_MKL.h │ ├── EigenSolver.h │ ├── GeneralizedEigenSolver.h │ ├── GeneralizedSelfAdjointEigenSolver.h │ ├── HessenbergDecomposition.h │ ├── MatrixBaseEigenvalues.h │ ├── RealQZ.h │ ├── RealSchur.h │ ├── RealSchur_MKL.h │ ├── SelfAdjointEigenSolver.h │ ├── SelfAdjointEigenSolver_MKL.h │ └── Tridiagonalization.h │ ├── Geometry │ ├── AlignedBox.h │ ├── AngleAxis.h │ ├── CMakeLists.txt │ ├── EulerAngles.h │ ├── Homogeneous.h │ ├── Hyperplane.h │ ├── OrthoMethods.h │ ├── ParametrizedLine.h │ ├── Quaternion.h │ ├── Rotation2D.h │ ├── RotationBase.h │ ├── Scaling.h │ ├── Transform.h │ ├── Translation.h │ ├── Umeyama.h │ └── arch │ │ ├── CMakeLists.txt │ │ └── Geometry_SSE.h │ ├── Householder │ ├── BlockHouseholder.h │ ├── CMakeLists.txt │ ├── Householder.h │ └── HouseholderSequence.h │ ├── IterativeLinearSolvers │ ├── BasicPreconditioners.h │ ├── BiCGSTAB.h │ ├── CMakeLists.txt │ ├── ConjugateGradient.h │ ├── IncompleteLUT.h │ └── IterativeSolverBase.h │ ├── Jacobi │ ├── CMakeLists.txt │ └── Jacobi.h │ ├── LU │ ├── CMakeLists.txt │ ├── Determinant.h │ ├── FullPivLU.h │ ├── Inverse.h │ ├── PartialPivLU.h │ ├── PartialPivLU_MKL.h │ └── arch │ │ ├── CMakeLists.txt │ │ └── Inverse_SSE.h │ ├── MetisSupport │ ├── CMakeLists.txt │ └── MetisSupport.h │ ├── OrderingMethods │ ├── Amd.h │ ├── CMakeLists.txt │ ├── Eigen_Colamd.h │ └── Ordering.h │ ├── PaStiXSupport │ ├── CMakeLists.txt │ └── PaStiXSupport.h │ ├── PardisoSupport │ ├── CMakeLists.txt │ └── PardisoSupport.h │ ├── QR │ ├── CMakeLists.txt │ ├── ColPivHouseholderQR.h │ ├── ColPivHouseholderQR_MKL.h │ ├── FullPivHouseholderQR.h │ ├── HouseholderQR.h │ └── HouseholderQR_MKL.h │ ├── SPQRSupport │ ├── CMakeLists.txt │ └── SuiteSparseQRSupport.h │ ├── SVD │ ├── CMakeLists.txt │ ├── JacobiSVD.h │ ├── JacobiSVD_MKL.h │ └── UpperBidiagonalization.h │ ├── SparseCholesky │ ├── CMakeLists.txt │ ├── SimplicialCholesky.h │ └── SimplicialCholesky_impl.h │ ├── SparseCore │ ├── AmbiVector.h │ ├── CMakeLists.txt │ ├── CompressedStorage.h │ ├── ConservativeSparseSparseProduct.h │ ├── MappedSparseMatrix.h │ ├── SparseBlock.h │ ├── SparseColEtree.h │ ├── SparseCwiseBinaryOp.h │ ├── SparseCwiseUnaryOp.h │ ├── SparseDenseProduct.h │ ├── SparseDiagonalProduct.h │ ├── SparseDot.h │ ├── SparseFuzzy.h │ ├── SparseMatrix.h │ ├── SparseMatrixBase.h │ ├── SparsePermutation.h │ ├── SparseProduct.h │ ├── SparseRedux.h │ ├── SparseSelfAdjointView.h │ ├── SparseSparseProductWithPruning.h │ ├── SparseTranspose.h │ ├── SparseTriangularView.h │ ├── SparseUtil.h │ ├── SparseVector.h │ ├── SparseView.h │ └── TriangularSolver.h │ ├── SparseLU │ ├── CMakeLists.txt │ ├── SparseLU.h │ ├── SparseLUImpl.h │ ├── SparseLU_Memory.h │ ├── SparseLU_Structs.h │ ├── SparseLU_SupernodalMatrix.h │ ├── SparseLU_Utils.h │ ├── SparseLU_column_bmod.h │ ├── SparseLU_column_dfs.h │ ├── SparseLU_copy_to_ucol.h │ ├── SparseLU_gemm_kernel.h │ ├── SparseLU_heap_relax_snode.h │ ├── SparseLU_kernel_bmod.h │ ├── SparseLU_panel_bmod.h │ ├── SparseLU_panel_dfs.h │ ├── SparseLU_pivotL.h │ ├── SparseLU_pruneL.h │ └── SparseLU_relax_snode.h │ ├── SparseQR │ ├── CMakeLists.txt │ └── SparseQR.h │ ├── StlSupport │ ├── CMakeLists.txt │ ├── StdDeque.h │ ├── StdList.h │ ├── StdVector.h │ └── details.h │ ├── SuperLUSupport │ ├── CMakeLists.txt │ └── SuperLUSupport.h │ ├── UmfPackSupport │ ├── CMakeLists.txt │ └── UmfPackSupport.h │ ├── misc │ ├── CMakeLists.txt │ ├── Image.h │ ├── Kernel.h │ ├── Solve.h │ ├── SparseSolve.h │ └── blas.h │ └── plugins │ ├── ArrayCwiseBinaryOps.h │ ├── ArrayCwiseUnaryOps.h │ ├── BlockMethods.h │ ├── CMakeLists.txt │ ├── CommonCwiseBinaryOps.h │ ├── CommonCwiseUnaryOps.h │ ├── MatrixCwiseBinaryOps.h │ └── MatrixCwiseUnaryOps.h ├── clipper ├── License.txt ├── README ├── clipper.cpp └── clipper.hpp ├── cpp_build.sh ├── jsonlab ├── AUTHORS.txt ├── ChangeLog.txt ├── LICENSE_BSD.txt ├── LICENSE_GPLv3.txt ├── README.txt ├── examples │ ├── demo_jsonlab_basic.m │ ├── demo_ubjson_basic.m │ ├── example1.json │ ├── example2.json │ ├── example3.json │ ├── example4.json │ ├── jsonlab_basictest.matlab │ ├── jsonlab_selftest.m │ ├── jsonlab_selftest.matlab │ └── jsonlab_speedtest.m ├── jsonopt.m ├── loadjson.m ├── loadubjson.m ├── mergestruct.m ├── savejson.m ├── saveubjson.m ├── struct2jdata.m ├── test.json └── varargin2struct.m ├── matlab_build.m ├── polycont ├── LICENSE ├── cpp │ ├── clockwise_sort.hpp │ ├── containers.hpp │ ├── examples │ │ ├── example_polycont.cpp │ │ ├── example_polycont.darwin15 │ │ ├── example_polycont.linux-gnu │ │ ├── test_io.bin │ │ ├── test_io.cpp │ │ ├── test_io.darwin15 │ │ ├── test_io.linux-gnu │ │ └── test_io.pcont │ ├── in_out_sort.hpp │ ├── io.hpp │ ├── lines2jordan.hpp │ ├── mask2poly.hpp │ ├── mask2polycont.hpp │ ├── move2junctions.hpp │ ├── poly_compare.hpp │ └── simplify.hpp └── matlab │ ├── mask2pce.m │ ├── pce2mask.m │ ├── pce_area.m │ ├── pce_intersection.m │ ├── pce_jaccard.m │ ├── pce_read.m │ ├── pce_write.m │ ├── plot_pce.m │ ├── private │ ├── mask2poly_mex.cpp │ ├── mask2poly_mex.mexa64 │ ├── mask2poly_mex.mexmaci64 │ ├── mask2poly_mex.mexw64 │ ├── matlab_interface.hpp │ ├── poly2mask_mex.cpp │ ├── poly2mask_mex.mexa64 │ ├── poly2mask_mex.mexmaci64 │ ├── poly2mask_mex.mexw64 │ ├── poly_area_mex.cpp │ ├── poly_area_mex.mexa64 │ ├── poly_area_mex.mexmaci64 │ ├── poly_area_mex.mexw64 │ ├── poly_intersection_mex.cpp │ ├── poly_intersection_mex.mexa64 │ ├── poly_intersection_mex.mexmaci64 │ ├── poly_intersection_mex.mexw64 │ ├── poly_read_mex.cpp │ ├── poly_read_mex.mexa64 │ ├── poly_read_mex.mexmaci64 │ ├── poly_read_mex.mexw64 │ ├── poly_write_mex.cpp │ ├── poly_write_mex.mexa64 │ ├── poly_write_mex.mexmaci64 │ └── poly_write_mex.mexw64 │ └── tests │ ├── test_io.pce │ ├── test_mask2pce_visual.m │ ├── test_pce_compare.m │ └── test_pce_io.m └── psimpl ├── LICENSE.txt ├── README.txt └── psimpl.hpp /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Jordi Pont-Tuset, Sergi Caelles, Federico Perazzi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /build.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | % Rebuild the DAVIS package and dependencies 13 | % ------------------------------------------------------------------------ 14 | 15 | if (strcmp(computer(),'PCWIN64') || strcmp(computer(),'PCWIN32')) 16 | % Change the path to Boost libraries if necessary 17 | mex measures/private/mex_match_dijkstra.cpp -I'C:\Program Files\boost_1_55_0' -Ithird-party -outdir measures/private/; 18 | else 19 | mex measures/private/mex_match_dijkstra.cpp -I/opt/local/include/ -Ithird-party -outdir measures/private/ 20 | end 21 | 22 | % Build third party 23 | cd third-party 24 | run matlab_build.m 25 | cd .. 26 | 27 | -------------------------------------------------------------------------------- /db_matlab_root_dir.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | % Pointing to the matlab root folder, DO NOT EDIT 13 | % ------------------------------------------------------------------------ 14 | function root_dir = db_matlab_root_dir() 15 | root_dir = fileparts(which(mfilename)); 16 | end 17 | -------------------------------------------------------------------------------- /db_root_dir.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | % Point to the folder containing the DAVIS dataset 13 | % ------------------------------------------------------------------------ 14 | 15 | function root_dir = db_root_dir() 16 | %root_dir = '/Users/jpont/Workspace/gt_dbs/DAVIS/'; 17 | root_dir = '/Users/jpont/Dropbox/Jordi/DAVIS/'; 18 | end 19 | -------------------------------------------------------------------------------- /db_util/auxiliar/get_stab_seqs.m: -------------------------------------------------------------------------------- 1 | 2 | %% Startup 3 | db_set_properties(2017,1,'480p'); 4 | gt_set = 'trainval'; 5 | db_seq_list = db_seqs(gt_set); 6 | 7 | %% Create list of all objects 8 | all_obj = {}; 9 | all_seq = {}; 10 | for ii=1:length(db_seq_list) 11 | n_obj = length(db_read_annot(db_seq_list{ii},'00000')); 12 | for jj=1:n_obj 13 | all_obj{end+1} = [db_seq_list{ii} '-' num2str(jj)]; %#ok 14 | all_seq{end+1} = db_seq_list{ii}; %#ok 15 | end 16 | end 17 | 18 | %% Get the evaluation of GT 19 | eval = eval_result('gt','T',gt_set); 20 | [vals,ids] = sort(eval.T.mean); 21 | 22 | sel_ids = ids(floor(end/4):end); 23 | unstab_obj = sort(all_obj(sel_ids)); 24 | 25 | fprintf(['{''' unstab_obj{1}]) 26 | for ii=2:length(unstab_obj) 27 | fprintf([''', ''' unstab_obj{ii}]) 28 | end 29 | fprintf('''}\n') 30 | 31 | %% The same with sequences (those that have one unstable object) 32 | db_set_properties(2016,0,'480p'); 33 | [db_seq_list, stab_obj]= db_seqs('trainval'); 34 | stab_seq_2016 = db_seq_list(stab_obj); 35 | unstab_seq = setdiff(unique(sort(all_seq(sel_ids))),stab_seq_2016); 36 | 37 | fprintf(['{''' unstab_seq{1}]) 38 | for ii=2:length(unstab_seq) 39 | fprintf([''', ''' unstab_seq{ii}]) 40 | end 41 | fprintf('''}\n') 42 | 43 | -------------------------------------------------------------------------------- /db_util/auxiliar/loadvar.m: -------------------------------------------------------------------------------- 1 | function varargout = loadvar(filename, varargin) 2 | % Load the contents of a .MAT file directly into a returned variable 3 | 4 | % ====================================================================== 5 | % Copyright (c) 2012 David Weiss 6 | % 7 | % Permission is hereby granted, free of charge, to any person obtaining 8 | % a copy of this software and associated documentation files (the 9 | % "Software"), to deal in the Software without restriction, including 10 | % without limitation the rights to use, copy, modify, merge, publish, 11 | % distribute, sublicense, and/or sell copies of the Software, and to 12 | % permit persons to whom the Software is furnished to do so, subject to 13 | % the following conditions: 14 | % 15 | % The above copyright notice and this permission notice shall be 16 | % included in all copies or substantial portions of the Software. 17 | % 18 | % THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 | % EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 | % MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21 | % NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 22 | % LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | % OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 24 | % WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | % ====================================================================== 26 | 27 | x = load(filename, varargin{:}); 28 | 29 | if nargin==1 30 | fs = fieldnames(x); 31 | if numel(fs) == 1 32 | x = x.(fs{1}); 33 | end 34 | varargout{1} = x; 35 | else 36 | if nargout == numel(varargin) 37 | for i = 1:numel(varargin) 38 | varargout{i} = x.(varargin{i}); 39 | end 40 | else 41 | varargout{1} = x; 42 | end 43 | end -------------------------------------------------------------------------------- /db_util/auxiliar/subdir.m: -------------------------------------------------------------------------------- 1 | function s_dirs = subdir(path) 2 | 3 | tmp = dir(path); 4 | s_dirs = {tmp.name}; 5 | s_dirs(~[tmp.isdir]) = []; 6 | s_dirs(strcmp(s_dirs,'.')) = []; 7 | s_dirs(strcmp(s_dirs,'..')) = []; 8 | 9 | 10 | -------------------------------------------------------------------------------- /db_util/db_attributes.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | function result = db_attributes() 13 | 14 | % TODO 15 | fprintf(2,'Warning: You requested the attributes but they are not updated\n') 16 | 17 | att_file = fullfile(db_matlab_root_dir,'db_util','private','attributes.txt'); 18 | 19 | fid = fopen(att_file,'r'); 20 | 21 | % Get the attribute names in the first line 22 | tline = fgets(fid); 23 | attr_names = strsplit(tline); 24 | result.attr_names = attr_names(2:end); 25 | 26 | % Get the attribute values for all sequences 27 | ii=1; 28 | tline = fgets(fid); 29 | while ischar(tline) 30 | parts = strsplit(tline); 31 | result.seq_names{ii} = parts{1}; 32 | seq_attrs{ii} = result.attr_names(ismember(parts(2:end),'True')); %#ok 33 | tline = fgets(fid); 34 | ii = ii+1; 35 | end 36 | fclose(fid); 37 | 38 | % Put it in a Map for ease of use 39 | result.seq_attr = containers.Map(result.seq_names, seq_attrs); 40 | 41 | % Build the inverse LUT (which sequences have each attribute) 42 | result.attr_seq = containers.Map(result.attr_names, cell(1,length(result.attr_names))); 43 | for ii=1:length(result.seq_names) 44 | curr_attr = result.seq_attr(result.seq_names{ii}); 45 | for jj=1:length(curr_attr) 46 | tmp = result.attr_seq(curr_attr{jj}); 47 | tmp{end+1} = result.seq_names{ii}; %#ok 48 | result.attr_seq(curr_attr{jj}) = tmp; 49 | end 50 | end 51 | 52 | end 53 | -------------------------------------------------------------------------------- /db_util/db_frame_ids.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | function frame_ids = db_frame_ids( seq_id ) 13 | frame_ids = dir(fullfile(db_im_dir,seq_id,'*.jpg')); 14 | frame_ids = {frame_ids.name}; 15 | 16 | for ii=1:length(frame_ids) 17 | frame_ids{ii} = strrep(frame_ids{ii},'.jpg',''); 18 | end 19 | 20 | if isempty(frame_ids) 21 | error(['Error: Nothing found in ''' fullfile(db_im_dir,seq_id) '''. Did you download DAVIS and set the path in db_root_dir correctly?']) 22 | end 23 | end 24 | 25 | -------------------------------------------------------------------------------- /db_util/db_get_properties.m: -------------------------------------------------------------------------------- 1 | 2 | function str_props = db_get_properties() 3 | if db_sing_mult_obj==0 4 | str1 = 'single'; 5 | else 6 | str1 = 'multiple'; 7 | end 8 | 9 | str_props = [num2str(db_year) '-' str1 '-' db_im_size]; 10 | end 11 | -------------------------------------------------------------------------------- /db_util/db_read_annot.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | function annot = db_read_annot(seq_id, frame_id) 13 | annot_file = fullfile(db_annot_dir, seq_id, [frame_id '.png']); 14 | if ~exist(annot_file,'file') 15 | error(['Error: ''' annot_file ''' not found, have you downloaded the DAVIS database from the project website and set the correct path in db_root_dir?']) 16 | end 17 | im_annot = imread(annot_file); 18 | assert(size(im_annot,3)==1) 19 | 20 | % Get the number of objects from the first frame 21 | fr_ids = db_frame_ids(seq_id); 22 | im_first = imread(fullfile(db_annot_dir, seq_id, [fr_ids{1} '.png'])); 23 | n_objs = max(im_first(:)); 24 | 25 | % If single object 26 | if db_sing_mult_obj==0 27 | n_objs = 1; 28 | im_annot = (im_annot>0); 29 | end 30 | 31 | % Transform it into a cell of masks 32 | if db_sing_mult_obj==1 33 | annot = cell(n_objs,1); 34 | for ii=1:n_objs 35 | annot{ii} = (im_annot==ii); 36 | end 37 | else 38 | annot = im_annot; 39 | end 40 | 41 | end -------------------------------------------------------------------------------- /db_util/db_read_image.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | function image = db_read_image(seq_id, frame_id) 13 | im_file = fullfile(db_im_dir, seq_id, [frame_id '.jpg']); 14 | if ~exist(im_file,'file') 15 | error(['Error: ''' im_file ''' not found, have you downloaded the DAVIS database from the project website and set the correct path in db_root_dir?']) 16 | end 17 | image = imread(im_file); 18 | end -------------------------------------------------------------------------------- /db_util/db_results_dir.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | function obj_dir = db_results_dir() 13 | obj_dir = fullfile(db_root_dir,'Results','Segmentations',db_im_size); 14 | end 15 | -------------------------------------------------------------------------------- /db_util/db_write_result.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | function db_write_result(result, res_file) 13 | 14 | im_res = zeros(size(result{1})); 15 | for ii=1:length(result) 16 | if sum(im_res(result{ii}(:)>0))>0 17 | fprintf(2,'Warning: The masks you are writing to file overlap, so there will be some loss in writing to PNG\n'); 18 | end 19 | im_res(result{ii}>0) = ii; 20 | end 21 | imwrite(uint8(im_res), pascal_colormap(), res_file); 22 | 23 | end -------------------------------------------------------------------------------- /db_util/private/db_annot_dir.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | function obj_dir = db_annot_dir() 13 | obj_dir = fullfile(db_root_dir,'Annotations',db_im_size); 14 | end 15 | -------------------------------------------------------------------------------- /db_util/private/db_im_dir.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | function im_dir = db_im_dir() 13 | im_dir = fullfile(db_root_dir,'JPEGImages',db_im_size); 14 | end 15 | -------------------------------------------------------------------------------- /db_util/private/db_im_size.m: -------------------------------------------------------------------------------- 1 | % Automatically-generated function, do not edit manually 2 | function im_size = db_im_size() 3 | im_size = '480p'; 4 | end 5 | -------------------------------------------------------------------------------- /db_util/private/db_sing_mult_obj.m: -------------------------------------------------------------------------------- 1 | % Automatically-generated function, do not edit manually 2 | function sing_mult = db_sing_mult_obj() 3 | sing_mult = 1; 4 | end 5 | -------------------------------------------------------------------------------- /db_util/private/db_year.m: -------------------------------------------------------------------------------- 1 | % Automatically-generated function, do not edit manually 2 | function year = db_year() 3 | year = 2017; 4 | end 5 | -------------------------------------------------------------------------------- /db_util/private/read_list_from_file.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Copyright (C) 3 | % ETHZ - Computer Vision Lab 4 | % 5 | % Jordi Pont-Tuset 6 | % September 2015 7 | % ------------------------------------------------------------------------ 8 | % This file is part of the BOP package presented in: 9 | % Pont-Tuset J, Van Gool, Luc, 10 | % "Boosting Object Proposals: From Pascal to COCO" 11 | % International Conference on Computer Vision (ICCV) 2015. 12 | % Please consider citing the paper if you use this code. 13 | % ------------------------------------------------------------------------ 14 | function ids = read_list_from_file( gt_set ) 15 | index_file = fullfile(db_root_dir,'ImageSets',num2str(db_year()),[gt_set '.txt']); 16 | if ~exist(index_file,'file') 17 | error(['File ''' index_file ''' not found... did you set correctly the path in db_root_dir to the folder where DAVIS is found?']) 18 | end 19 | fileID = fopen(index_file); 20 | ids = textscan(fileID, '%s'); 21 | ids = ids{1}; 22 | fclose(fileID); 23 | end 24 | 25 | -------------------------------------------------------------------------------- /db_util/private/substitute_file_text.m: -------------------------------------------------------------------------------- 1 | function substitute_file_text( file, text ) 2 | fid = fopen(file,'w'); 3 | fprintf(fid,'%s',text); 4 | fclose(fid); 5 | end 6 | 7 | -------------------------------------------------------------------------------- /demos/demo_eval_multiple.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/demos/demo_eval_multiple.m -------------------------------------------------------------------------------- /demos/demo_eval_your_method.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.cat/ 3 | % April 2017 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Jordi Pont-Tuset, Federico Perazzi, Sergi Caelles, 7 | % Pablo Arbel?ez, Alexander Sorkine-Hornung, Luc Van Gool 8 | % The 2017 DAVIS Video Object Segmentation Challenge 9 | % arXiv 2017 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | 13 | % This sets - year, 2016 or 2017 14 | % - single_or_multiple_objects: 0 - Single Objects, 1 - Multiple Objects 15 | % - im_size: '480p' or 'Full-Resolution, full resolution of the images (4k, 1080p, etc.) 16 | db_set_properties(2017,1,'480p') 17 | 18 | % Get the ids from a set gt_set 19 | gt_set = 'trainval'; 20 | seq_ids = db_seqs(gt_set); 21 | 22 | % Also possible to do it from a folder 23 | % seq_ids = subdir('/path/to/my/results'); 24 | 25 | % Name of your method, this will create a folder with this name in 26 | results_id = 'your_method'; 27 | 28 | % Combine multiple masks for each object into the expected PNG 29 | % You can do that manually using 'db_write_result(result, res_file)' 30 | combine_multiple_pngs('/path/to/my/results',seq_ids,results_id) 31 | 32 | % And now call eval result 33 | eval = eval_result(results_id, {'F','J'}, gt_set); 34 | 35 | % Display results 36 | disp(['Mean J: ' num2str(mean(eval.J.mean))]) 37 | disp(['Mean F: ' num2str(mean(eval.F.mean))]) -------------------------------------------------------------------------------- /demos/demo_sweep.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | % This script simply reads all images, annotations and 13 | % shows how to sweep all results 14 | % ------------------------------------------------------------------------ 15 | 16 | addpath(fullfile(db_matlab_root_dir,'db_util')); 17 | 18 | % Name of a result technique 19 | %result_id = 'fcp'; 20 | 21 | % Get the ids of all sequences 22 | seq_ids = db_seqs('trainval'); 23 | 24 | % Sweep all sequences 25 | for s_id = 1:length(seq_ids) 26 | 27 | % Get all frame ids for that sequence 28 | frame_ids = db_frame_ids(seq_ids{s_id}); 29 | fprintf('%s',seq_ids{s_id}); 30 | 31 | % Sweep all frames 32 | for f_id = 2:length(frame_ids)-1 33 | fprintf('.'); 34 | 35 | % Read the original image 36 | image = db_read_image(seq_ids{s_id}, frame_ids{f_id}); 37 | 38 | % Read the object annotation 39 | annot = db_read_annot(seq_ids{s_id}, frame_ids{f_id}); 40 | 41 | % Read a result 42 | %result = db_read_result(seq_ids{s_id}, frame_ids{f_id}, result_id); 43 | end 44 | fprintf('\n'); 45 | end 46 | 47 | -------------------------------------------------------------------------------- /eval_results/bvs-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/bvs-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/bvs-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/bvs-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/bvs-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/bvs-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/bvs-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/bvs-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/bvs-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/bvs-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/bvs-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/bvs-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/bvs-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/bvs-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/bvs-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/bvs-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/bvs-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/bvs-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/cut-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/cut-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/cut-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/cut-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/cut-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/cut-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/cvos-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/cvos-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/cvos-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/cvos-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/cvos-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/cvos-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/cvos-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/cvos-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/cvos-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/cvos-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/cvos-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/cvos-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/cvos-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/cvos-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/cvos-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/cvos-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/cvos-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/cvos-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fcp-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fcp-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fcp-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fcp-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fcp-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fcp-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fcp-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fcp-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fcp-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fcp-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fcp-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fcp-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fcp-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fcp-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fcp-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fcp-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fcp-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fcp-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fst-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fst-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fst-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fst-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fst-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fst-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fst-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fst-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fst-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fst-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fst-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fst-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fst-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fst-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fst-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fst-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/fst-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/fst-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/gt-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/gt-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/gt-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/gt-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/gt-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/gt-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/hvs-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/hvs-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/hvs-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/hvs-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/hvs-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/hvs-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/hvs-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/hvs-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/hvs-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/hvs-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/hvs-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/hvs-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/hvs-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/hvs-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/hvs-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/hvs-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/hvs-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/hvs-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/jmp-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/jmp-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/jmp-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/jmp-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/jmp-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/jmp-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/jmp-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/jmp-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/jmp-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/jmp-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/jmp-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/jmp-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/jmp-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/jmp-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/jmp-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/jmp-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/jmp-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/jmp-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/key-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/key-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/key-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/key-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/key-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/key-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/key-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/key-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/key-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/key-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/key-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/key-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/key-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/key-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/key-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/key-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/key-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/key-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/mcg-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/mcg-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/mcg-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/mcg-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/mcg-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/mcg-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/mcg-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/mcg-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/mcg-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/mcg-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/mcg-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/mcg-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/mcg-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/mcg-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/mcg-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/mcg-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/mcg-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/mcg-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msg-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msg-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msg-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msg-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msg-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msg-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msg-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msg-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msg-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msg-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msg-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msg-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msg-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msg-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msg-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msg-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msg-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msg-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msk-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msk-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msk-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msk-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msk-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msk-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msk-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msk-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msk-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msk-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msk-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msk-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msk-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msk-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msk-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msk-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/msk-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/msk-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/nlc-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/nlc-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/nlc-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/nlc-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/nlc-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/nlc-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/nlc-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/nlc-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/nlc-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/nlc-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/nlc-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/nlc-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/nlc-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/nlc-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/nlc-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/nlc-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/nlc-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/nlc-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/ofl-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/ofl-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/ofl-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/ofl-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/ofl-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/ofl-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/ofl-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/ofl-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/ofl-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/ofl-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/ofl-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/ofl-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/ofl-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/ofl-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/ofl-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/ofl-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/ofl-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/ofl-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/osvos-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/osvos-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/osvos-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/osvos-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/osvos-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/osvos-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sal-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sal-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sal-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sal-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sal-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sal-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sal-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sal-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sal-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sal-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sal-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sal-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sal-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sal-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sal-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sal-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sal-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sal-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sea-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sea-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sea-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sea-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sea-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sea-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sea-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sea-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sea-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sea-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sea-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sea-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sea-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sea-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sea-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sea-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sea-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sea-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-lab-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-lab-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-lab-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-lab-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-lab-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-lab-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-lab-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-lab-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-lab-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-lab-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-lab-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-lab-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-lab-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-lab-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-lab-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-lab-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-lab-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-lab-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-mot-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-mot-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-mot-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-mot-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-mot-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-mot-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-mot-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-mot-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-mot-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-mot-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-mot-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-mot-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-mot-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-mot-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-mot-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-mot-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/sf-mot-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/sf-mot-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/trc-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/trc-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/trc-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/trc-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/trc-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/trc-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/trc-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/trc-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/trc-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/trc-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/trc-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/trc-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/trc-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/trc-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/trc-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/trc-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/trc-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/trc-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/tsp-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/tsp-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/tsp-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/tsp-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/tsp-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/tsp-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/tsp-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/tsp-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/tsp-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/tsp-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/tsp-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/tsp-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/tsp-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/tsp-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/tsp-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/tsp-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/tsp-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/tsp-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/vpn-F-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/vpn-F-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/vpn-F-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/vpn-F-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/vpn-F-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/vpn-F-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/vpn-J-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/vpn-J-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/vpn-J-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/vpn-J-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/vpn-J-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/vpn-J-val-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/vpn-T-train-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/vpn-T-train-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/vpn-T-trainval-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/vpn-T-trainval-2016-single-480p.mat -------------------------------------------------------------------------------- /eval_results/vpn-T-val-2016-single-480p.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/eval_results/vpn-T-val-2016-single-480p.mat -------------------------------------------------------------------------------- /experiments/auxiliar/davis2json.m: -------------------------------------------------------------------------------- 1 | function davis2json(meth_id, out_file, gt_set) 2 | 3 | if nargin==0 4 | gt_set = 'val'; 5 | meth_id = 'osvos'; 6 | res_folder = '.'; 7 | out_file = fullfile(res_folder,[strrep(meth_id,'-',''), '_davis.json']); 8 | end 9 | 10 | % Open out file 11 | fid = fopen(out_file,'w'); 12 | fprintf(fid,'{"id" : "%s",\n',strrep(meth_id,'-','')); 13 | 14 | % Read evaluation 15 | [~, raw_ev] = eval_result(meth_id,{'J','F'},gt_set); 16 | experiments_params(); 17 | 18 | % Scan all sequences 19 | seq_ids = db_seqs(gt_set); 20 | for ii=1:length(seq_ids) 21 | fprintf(fid,' "%s" : {\n',seq_ids{ii}); 22 | fprintf(seq_ids{ii}) 23 | 24 | % Print J 25 | fprintf(fid,' "J" : ['); 26 | fprintf(fid,'"%0.3f", ', raw_ev.J(ii).raw(1:end-1)); 27 | fprintf(fid,'"%0.3f"],\n',raw_ev.J(ii).raw(end)); 28 | 29 | % Print F 30 | fprintf(fid,' "F" : ['); 31 | fprintf(fid,'"%0.3f", ', raw_ev.F(ii).raw(1:end-1)); 32 | fprintf(fid,'"%0.3f"]}',raw_ev.F(ii).raw(end)); 33 | 34 | if ii 5 | % raw_eval = loadvar(fullfile(db_matlab_root_dir,'eval_results',[techniques{ii} '.mat']),'raw_eval'); 6 | % 7 | % seq_ids = db_seqs(); 8 | % assert(length(raw_eval)==length(seq_ids)) 9 | % 10 | % sel_eval = cell(length(measures),length(seq_ids)); 11 | % 12 | % for jj=1:length(seq_ids) 13 | % assert(isequal(raw_eval{jj}.seq_id,seq_ids{jj})) 14 | % for kk=1:length(measures) 15 | % sel_eval{kk,jj} = raw_eval{jj}.(measures{kk}); 16 | % end 17 | % end 18 | % 19 | % for kk=1:length(measures) 20 | % raw_ev = sel_eval(kk,:); %#ok 21 | % save(fullfile(db_matlab_root_dir,'eval_results',[techniques{ii} '_' measures{kk} '.mat']),'raw_ev','-v7.3'); 22 | % end 23 | % end -------------------------------------------------------------------------------- /experiments/auxiliar/write_to_file.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | function write_to_file(filename, headers, data ) 13 | 14 | % Create header and pattern string 15 | assert(length(headers)==size(data,2)) 16 | str_pattern = '%f'; 17 | str_header = headers{1}; 18 | for ii=2:length(headers) 19 | str_pattern = [str_pattern '\t%f']; %#ok 20 | str_header = [str_header '\t' headers{ii}]; %#ok 21 | end 22 | str_pattern = [str_pattern '\n']; 23 | str_header = [str_header '\n']; 24 | 25 | % Write to file 26 | fid = fopen(filename,'w'); 27 | fprintf(fid, str_header); 28 | fprintf(fid, str_pattern, data'); 29 | fclose(fid); 30 | 31 | 32 | end 33 | 34 | -------------------------------------------------------------------------------- /experiments/database_sizes.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Sergi Caelles, Jordi Pont-Tuset 3 | % April 2017 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % @article{Pont-Tuset_arXiv_2017, 7 | % author = {Jordi Pont-Tuset and Federico Perazzi and Sergi Caelles and 8 | % Pablo Arbel\'aez and Alexander Sorkine-Hornung and Luc {Van Gool}}, 9 | % title = {The 2017 DAVIS Challenge on Video Object Segmentation}, 10 | % journal = {arXiv:1704.00675}, 11 | % year = {2017} 12 | % } 13 | % Please consider citing the paper if you use this code. 14 | % ------------------------------------------------------------------------ 15 | 16 | db_set_properties(2017, 1, '480p'); 17 | 18 | sets = {'train','val','test-dev'}; 19 | 20 | for ii=1:length(sets) 21 | seqs = db_seqs(sets{ii}); 22 | n_frames = 0; 23 | n_objs = 0; 24 | for kk=1:length(seqs) 25 | frames = db_frame_ids(seqs{kk}); 26 | n_frames = n_frames + length(frames); 27 | n_objs = n_objs + length(db_read_annot(seqs{kk},frames{1})); 28 | end 29 | disp(['Set: ' sets{ii} ', Frames: ' num2str(n_frames) ', Objects: ' num2str(n_objs)]) 30 | end 31 | -------------------------------------------------------------------------------- /experiments/eval_all.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | % Evaluate all techniques in parallel 13 | % ------------------------------------------------------------------------ 14 | function eval_all(measures, gt_set) 15 | 16 | if nargin==0 17 | error('Parameter ''measures'' not defined') 18 | end 19 | 20 | % Get the parameters (list of techniques) 21 | experiments_params(); 22 | 23 | % Evaluate in parallel 24 | p = parpool(); 25 | parfor ii=1:length(techniques) %#ok 26 | eval_result(techniques{ii},measures,gt_set); %#ok 27 | end 28 | delete(p); 29 | 30 | -------------------------------------------------------------------------------- /experiments/eval_all.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | techniques = ['mcg','sf-lab','sf-mot','nlc','cvos','trc','msg','key','sal','fst','tsp','sea','hvs','jmp','fcp','bvs']; 5 | gt_set = sys.argv[1] 6 | for ii in range(0,len(techniques)): 7 | os.system('qsub -N '+techniques[ii]+'-'+gt_set+' eval_one.py ' + techniques[ii] +' "{\'F\',\'J\',\'T\'}" ' + gt_set) 8 | 9 | -------------------------------------------------------------------------------- /experiments/eval_one.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | # qsub -N OSVOS eval_one.py OSVOS "{'F','J'}" val-2016 4 | # ----- Parameters passed to the cluster ------- 5 | #$ -S /usr/bin/python 6 | #$ -l h_rt=23:59:00 7 | #$ -l h_vmem=30000M 8 | #$ -o /scratch_net/neo/jpont/logs/ 9 | #$ -j y 10 | 11 | # ----------------- Imports -------------------- 12 | import os 13 | import numpy as np 14 | import math 15 | import sys 16 | 17 | 18 | # ------------- Get the parameters ------------- 19 | if len(sys.argv)<3: 20 | print "Usage 'eval_one technique measures gt_set'" 21 | exit(1) 22 | 23 | technique = sys.argv[1] 24 | measures = sys.argv[2] 25 | gt_set = sys.argv[3] 26 | 27 | # ---------------- Check main folders ------------------- 28 | 29 | # Run the actual code 30 | os.chdir('/scratch_net/neo_second/jpont/dev/davis-matlab') 31 | command_to_run = "/usr/sepp/bin/matlab -nodesktop -nodisplay -nosplash -r \"startup;db_set_properties(2017,1,'480p');eval_result('"+technique+"',"+measures+",'"+gt_set+"');exit\"" 32 | os.system(command_to_run) 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /experiments/experiments_params.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | % This file defines the parameters of the experiments 13 | % ------------------------------------------------------------------------ 14 | 15 | % List of techniques compared 16 | techniques = {'onavos','osvos','cut','sfls','sflu',... % These are only on val 17 | 'msk','vpn','ofl',... 18 | 'ctn','lmp','bvs','fcp','jmp','hvs','sea','tsp',... 19 | 'arp','lvo','fseg','nlc','cvos','trc','msg',... 20 | 'key','sal','fst',... 21 | 'mcg','sf-lab','sf-mot' 22 | }; 23 | 24 | % Output folder to save files 25 | paper_data = '~/tmp'; 26 | -------------------------------------------------------------------------------- /experiments/supplemental/attrib_per_seq.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | % Show table of which attributes each sequence has 13 | % ------------------------------------------------------------------------ 14 | 15 | % Get the parameters 16 | experiments_params(); 17 | 18 | % Get the attributes 19 | db = db_attributes(); 20 | 21 | % Sort them alphabetically 22 | attr_names = sort(db.attr_names); 23 | 24 | % Show header 25 | clc 26 | disp('% ------ Matlab-generated LaTeX code ------') 27 | fprintf('%s',strpad('Sequence',20,'post',' ')) 28 | for ii=1:length(attr_names) 29 | fprintf('& %s',strpad(attr_names{ii},8,'post',' ')) 30 | end 31 | fprintf('\\\\\n\\midrule\n') 32 | 33 | % Show attributes for each sequence 34 | for jj=1:length(db.seq_names) 35 | fprintf('%s',strpad(db.seq_names{jj},20,'post',' ')) 36 | for ii=1:length(attr_names) 37 | if ismember(attr_names{ii},db.seq_attr(db.seq_names{jj})) 38 | fprintf('& %s',strpad('\cmark',8,'post',' ')) 39 | else 40 | fprintf('& %s',strpad('',8,'post',' ')) 41 | end 42 | end 43 | fprintf('\\\\\n') 44 | end 45 | 46 | disp('% ------ End of Matlab-generated LaTeX code ------') 47 | -------------------------------------------------------------------------------- /helpers/combine_multiple_pngs.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/helpers/combine_multiple_pngs.m -------------------------------------------------------------------------------- /helpers/create_submission_zip.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/helpers/create_submission_zip.m -------------------------------------------------------------------------------- /measures/auxiliar/contour_upsample.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | function [up_cont, original_marker] = contour_upsample(cont, cont_th) 13 | cont = [cont; cont(1,:)]; 14 | v = diff(cont); 15 | nv = arrayfun(@(idx) norm(v(idx,:)), 1:size(v,1))'; 16 | 17 | up_cont = []; 18 | original_marker = []; 19 | for ii=1:length(nv) 20 | up_cont = [up_cont; cont(ii,:)]; %#ok 21 | original_marker = [original_marker; 1]; %#ok 22 | 23 | % If segment is too long, resample in between 24 | if nv(ii)>cont_th 25 | n_segm = ceil(nv(ii)/cont_th); 26 | curr_point = up_cont(end,:); 27 | vec = v(ii,:)/n_segm; 28 | for jj=1:n_segm-1 29 | curr_point = curr_point + vec; 30 | up_cont = [up_cont; curr_point]; %#ok 31 | original_marker = [original_marker; 0]; %#ok 32 | end 33 | end 34 | end 35 | 36 | original_marker = logical(original_marker); 37 | end -------------------------------------------------------------------------------- /measures/auxiliar/get_longest_cont.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | function conts = get_longest_cont(poly) 13 | max_length = 0; 14 | for jj=1:length(poly.paths) 15 | if (max_length < size(poly.paths(jj).contour_coords,1)) 16 | max_length = size(poly.paths(jj).contour_coords,1); 17 | conts = double(poly.paths(jj).contour_coords); 18 | end 19 | end 20 | end -------------------------------------------------------------------------------- /measures/auxiliar/private/dist2.m: -------------------------------------------------------------------------------- 1 | function n2 = dist2(x, c) 2 | %DIST2 Calculates squared distance between two sets of points. 3 | % 4 | % Description 5 | % D = DIST2(X, C) takes two matrices of vectors and calculates the 6 | % squared Euclidean distance between them. Both matrices must be of 7 | % the same column dimension. If X has M rows and N columns, and C has 8 | % L rows and N columns, then the result has M rows and L columns. The 9 | % I, Jth entry is the squared distance from the Ith row of X to the 10 | % Jth row of C. 11 | % 12 | % See also 13 | % GMMACTIV, KMEANS, RBFFWD 14 | % 15 | 16 | % Copyright (c) Christopher M Bishop, Ian T Nabney (1996, 1997) 17 | 18 | [ndata, dimx] = size(x); 19 | [ncentres, dimc] = size(c); 20 | if dimx ~= dimc 21 | error('Data dimension does not match dimension of centres') 22 | end 23 | 24 | n2 = (ones(ncentres, 1) * sum((x.^2)', 1))' + ... 25 | ones(ndata, 1) * sum((c.^2)',1) - ... 26 | 2.*(x*(c')); 27 | -------------------------------------------------------------------------------- /measures/eval_frame.m: -------------------------------------------------------------------------------- 1 | 2 | 3 | function eval = eval_frame(mask, measures, mask_gt, num_objects, mask_prev) 4 | 5 | if ~exist('num_objects','var') 6 | num_objects = max(length(mask), length(mask_gt)); 7 | end 8 | 9 | % Compute measures 10 | if ismember('J',measures), eval.J = jaccard_region(mask, mask_gt, num_objects); end 11 | if ismember('F',measures), eval.F = f_boundary(mask, mask_gt, num_objects); end 12 | if ismember('T',measures), eval.T = t_stability(mask_prev, mask, num_objects); end 13 | -------------------------------------------------------------------------------- /measures/private/get_bijective_matching.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | function bij_pairs = get_bijective_matching(pairs, costmat) 13 | bij_pairs = bij_pairs_one_dim(pairs, costmat,0); 14 | bij_pairs = bij_pairs_one_dim(bij_pairs, costmat',1); 15 | end 16 | 17 | function bij_pairs = bij_pairs_one_dim(pairs, costmat, left_or_right) 18 | bij_pairs = []; 19 | ids1 = unique(pairs(:,1+left_or_right)); 20 | for ii=1:length(ids1) 21 | curr_pairs = pairs(pairs(:,1+left_or_right)==ids1(ii),:); 22 | 23 | curr_costs = costmat(sub2ind(size(costmat), curr_pairs(:,1+left_or_right), curr_pairs(:,2-left_or_right))); 24 | [~,b] = min(curr_costs); 25 | 26 | bij_pairs = [bij_pairs; curr_pairs(b,:)]; %#ok 27 | end 28 | end -------------------------------------------------------------------------------- /measures/private/hist_cost_2.m: -------------------------------------------------------------------------------- 1 | function HC=hist_cost_2(BH1,BH2); 2 | % HC=hist_cost_2(BH1,BH2); 3 | % 4 | % same as hist_cost.m but BH1 and BH2 can be of different lengths 5 | 6 | [nsamp1,nbins]=size(BH1); 7 | [nsamp2,nbins]=size(BH2); 8 | 9 | BH1n=BH1./repmat(sum(BH1,2)+eps,[1 nbins]); 10 | BH2n=BH2./repmat(sum(BH2,2)+eps,[1 nbins]); 11 | tmp1=repmat(permute(BH1n,[1 3 2]),[1 nsamp2 1]); 12 | tmp2=repmat(permute(BH2n',[3 2 1]),[nsamp1 1 1]); 13 | HC=0.5*sum(((tmp1-tmp2).^2)./(tmp1+tmp2+eps),3); 14 | -------------------------------------------------------------------------------- /measures/private/mex_match_dijkstra.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/measures/private/mex_match_dijkstra.mexa64 -------------------------------------------------------------------------------- /measures/private/mex_match_dijkstra.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/measures/private/mex_match_dijkstra.mexmaci64 -------------------------------------------------------------------------------- /measures/private/mex_match_dijkstra.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/measures/private/mex_match_dijkstra.mexw64 -------------------------------------------------------------------------------- /measures/private/points_dist.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | function [d, all_d] = points_dist(coords1, coords2) 13 | 14 | % Compute distance of all points in 1 to closest points in 2 15 | all_d = zeros(size(coords1,1),1); 16 | for ii=1:size(coords1,1) 17 | all_d(ii) = abs(p_poly_dist(coords1(ii,1),coords1(ii,2),coords2(:,1),coords2(:,2))); 18 | end 19 | 20 | % Mean distance 21 | d = mean(all_d); 22 | 23 | -------------------------------------------------------------------------------- /measures/private/segment_dist.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | function [all_d1, all_d2, coords2_trans] = segment_dist( coords1, coords2, pairs, debug ) 13 | 14 | % Warp one segment into the other 15 | anchors1 = coords1(pairs(:,1),:); 16 | anchors2 = coords2(pairs(:,2),:); 17 | 18 | % Estimate affine transformation 19 | trans = cp2tform(anchors2,anchors1,'nonreflective similarity'); 20 | 21 | % Project all points using the estimated transform 22 | coords2_trans = tformfwd(trans, coords2); 23 | 24 | % Compute distance of all points in 1 to projected points in 2 25 | [~, all_d1] = points_dist(coords1, coords2_trans); 26 | [~, all_d2] = points_dist(coords2_trans, coords1); 27 | 28 | % Plot to debug 29 | if debug 30 | figure; 31 | hold on; 32 | set(gcf,'color','w'); 33 | 34 | plot(coords2_trans(:,1),coords2_trans(:,2),'k-', ... 35 | coords1(:,1), coords1(:,2),'r--',... 36 | 'linewidth',.5); 37 | axis equal; axis ij; axis off; 38 | end 39 | 40 | end 41 | 42 | -------------------------------------------------------------------------------- /measures/seg2bmap.m: -------------------------------------------------------------------------------- 1 | function [bmap] = seg2bmap(seg,width,height) 2 | % [bmap] = seg2bmap(seg) 3 | % 4 | % From a segmentation, compute a binary boundary map with 1 pixel wide 5 | % boundaries. The boundary pixels are offset by 1/2 pixel towards the 6 | % origin from the actual segment boundary. 7 | % 8 | % INPUTS 9 | % seg Segments labeled from 1..k. 10 | % [width] Width of desired bmap, <= size(seg,2) 11 | % [height] Height of desired bmap, <= size(seg,1) 12 | % 13 | % OUTPUTS 14 | % bmap Binary boundary map. 15 | % 16 | % David Martin 17 | % January 2003 18 | 19 | if nargin<3, 20 | [height,width] = size(seg); 21 | end 22 | [h,w] = size(seg); 23 | 24 | % check width and height 25 | ar1 = width / height; 26 | ar2 = w / h; 27 | if width>w | height>h | abs(ar1-ar2)>0.01, 28 | error(sprintf('Can''t convert %dx%d seg to %dx%d bmap.',w,h,width,height)); 29 | end 30 | 31 | e = zeros(size(seg)); 32 | s = zeros(size(seg)); 33 | se = zeros(size(seg)); 34 | 35 | e(:,1:end-1) = seg(:,2:end); 36 | s(1:end-1,:) = seg(2:end,:); 37 | se(1:end-1,1:end-1) = seg(2:end,2:end); 38 | 39 | b = (seg~=e | seg~=s | seg~=se); 40 | b(end,:) = (seg(end,:)~=e(end,:)); 41 | b(:,end) = (seg(:,end)~=s(:,end)); 42 | b(end,end) = 0; 43 | 44 | if w==width & h==height, 45 | 46 | bmap = b; 47 | 48 | else 49 | 50 | bmap = zeros(height,width); 51 | for x = 1:w, 52 | for y = 1:h, 53 | if b(y,x), 54 | j = 1+floor((y-1)*height/h); 55 | i = 1+floor((x-1)*width/w); 56 | bmap(j,i) = 1; 57 | end 58 | end 59 | end 60 | 61 | end 62 | 63 | -------------------------------------------------------------------------------- /startup.m: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------------ 2 | % Jordi Pont-Tuset - http://jponttuset.github.io/ 3 | % April 2016 4 | % ------------------------------------------------------------------------ 5 | % This file is part of the DAVIS package presented in: 6 | % Federico Perazzi, Jordi Pont-Tuset, Brian McWilliams, 7 | % Luc Van Gool, Markus Gross, Alexander Sorkine-Hornung 8 | % A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation 9 | % CVPR 2016 10 | % Please consider citing the paper if you use this code. 11 | % ------------------------------------------------------------------------ 12 | 13 | % Add paths 14 | addpath(db_matlab_root_dir); 15 | addpath(fullfile(db_matlab_root_dir,'db_util')); 16 | addpath(fullfile(db_matlab_root_dir,'db_util','auxiliar')); 17 | addpath(genpath(fullfile(db_matlab_root_dir,'experiments'))); 18 | addpath(fullfile(db_matlab_root_dir,'measures')); 19 | addpath(fullfile(db_matlab_root_dir,'measures','auxiliar')); 20 | addpath(fullfile(db_matlab_root_dir,'third-party','polycont','matlab')) 21 | addpath(fullfile(db_matlab_root_dir,'third-party','jsonlab')) 22 | addpath(fullfile(db_matlab_root_dir,'helpers')); 23 | 24 | % Check compiled files 25 | needed_files = {'measures/private/mex_match_dijkstra'}; 26 | for ii=1:length(needed_files) 27 | if ~exist(fullfile(db_matlab_root_dir,[needed_files{ii} '.' mexext]),'file') 28 | error(['The needed function (' needed_files{ii} ') not found. Have you built the package properly?']) 29 | end 30 | end 31 | 32 | % Clear 33 | clear needed_files; 34 | clear ii; 35 | 36 | % Check db_root_dir 37 | if ~exist(db_root_dir,'dir') 38 | error(['Error: ''db_root_dir'' (' db_root_dir ') not found, did you set it correctly to the folder where DAVIS is found?']) 39 | end 40 | 41 | % Display message 42 | disp('DAVIS Matlab Package started correctly. Enjoy!') 43 | -------------------------------------------------------------------------------- /third-party/Eigen/Array: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_ARRAY_MODULE_H 2 | #define EIGEN_ARRAY_MODULE_H 3 | 4 | // include Core first to handle Eigen2 support macros 5 | #include "Core" 6 | 7 | #ifndef EIGEN2_SUPPORT 8 | #error The Eigen/Array header does no longer exist in Eigen3. All that functionality has moved to Eigen/Core. 9 | #endif 10 | 11 | #endif // EIGEN_ARRAY_MODULE_H 12 | -------------------------------------------------------------------------------- /third-party/Eigen/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | include(RegexUtils) 2 | test_escape_string_as_regex() 3 | 4 | file(GLOB Eigen_directory_files "*") 5 | 6 | escape_string_as_regex(ESCAPED_CMAKE_CURRENT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") 7 | 8 | foreach(f ${Eigen_directory_files}) 9 | if(NOT f MATCHES "\\.txt" AND NOT f MATCHES "${ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/[.].+" AND NOT f MATCHES "${ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/src") 10 | list(APPEND Eigen_directory_files_to_install ${f}) 11 | endif() 12 | endforeach(f ${Eigen_directory_files}) 13 | 14 | install(FILES 15 | ${Eigen_directory_files_to_install} 16 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen COMPONENT Devel 17 | ) 18 | 19 | add_subdirectory(src) 20 | -------------------------------------------------------------------------------- /third-party/Eigen/Cholesky: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_CHOLESKY_MODULE_H 2 | #define EIGEN_CHOLESKY_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | /** \defgroup Cholesky_Module Cholesky module 9 | * 10 | * 11 | * 12 | * This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices. 13 | * Those decompositions are accessible via the following MatrixBase methods: 14 | * - MatrixBase::llt(), 15 | * - MatrixBase::ldlt() 16 | * 17 | * \code 18 | * #include 19 | * \endcode 20 | */ 21 | 22 | #include "src/misc/Solve.h" 23 | #include "src/Cholesky/LLT.h" 24 | #include "src/Cholesky/LDLT.h" 25 | #ifdef EIGEN_USE_LAPACKE 26 | #include "src/Cholesky/LLT_MKL.h" 27 | #endif 28 | 29 | #include "src/Core/util/ReenableStupidWarnings.h" 30 | 31 | #endif // EIGEN_CHOLESKY_MODULE_H 32 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 33 | -------------------------------------------------------------------------------- /third-party/Eigen/CholmodSupport: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_CHOLMODSUPPORT_MODULE_H 2 | #define EIGEN_CHOLMODSUPPORT_MODULE_H 3 | 4 | #include "SparseCore" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | extern "C" { 9 | #include 10 | } 11 | 12 | /** \ingroup Support_modules 13 | * \defgroup CholmodSupport_Module CholmodSupport module 14 | * 15 | * This module provides an interface to the Cholmod library which is part of the suitesparse package. 16 | * It provides the two following main factorization classes: 17 | * - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization. 18 | * - class CholmodDecomposiiton: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of the underlying factorization method (supernodal or simplicial). 19 | * 20 | * For the sake of completeness, this module also propose the two following classes: 21 | * - class CholmodSimplicialLLT 22 | * - class CholmodSimplicialLDLT 23 | * Note that these classes does not bring any particular advantage compared to the built-in 24 | * SimplicialLLT and SimplicialLDLT factorization classes. 25 | * 26 | * \code 27 | * #include 28 | * \endcode 29 | * 30 | * In order to use this module, the cholmod headers must be accessible from the include paths, and your binary must be linked to the cholmod library and its dependencies. 31 | * The dependencies depend on how cholmod has been compiled. 32 | * For a cmake based project, you can use our FindCholmod.cmake module to help you in this task. 33 | * 34 | */ 35 | 36 | #include "src/misc/Solve.h" 37 | #include "src/misc/SparseSolve.h" 38 | 39 | #include "src/CholmodSupport/CholmodSupport.h" 40 | 41 | 42 | #include "src/Core/util/ReenableStupidWarnings.h" 43 | 44 | #endif // EIGEN_CHOLMODSUPPORT_MODULE_H 45 | 46 | -------------------------------------------------------------------------------- /third-party/Eigen/Dense: -------------------------------------------------------------------------------- 1 | #include "Core" 2 | #include "LU" 3 | #include "Cholesky" 4 | #include "QR" 5 | #include "SVD" 6 | #include "Geometry" 7 | #include "Eigenvalues" 8 | -------------------------------------------------------------------------------- /third-party/Eigen/Eigen: -------------------------------------------------------------------------------- 1 | #include "Dense" 2 | //#include "Sparse" 3 | -------------------------------------------------------------------------------- /third-party/Eigen/Eigenvalues: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_EIGENVALUES_MODULE_H 2 | #define EIGEN_EIGENVALUES_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #include "Cholesky" 9 | #include "Jacobi" 10 | #include "Householder" 11 | #include "LU" 12 | #include "Geometry" 13 | 14 | /** \defgroup Eigenvalues_Module Eigenvalues module 15 | * 16 | * 17 | * 18 | * This module mainly provides various eigenvalue solvers. 19 | * This module also provides some MatrixBase methods, including: 20 | * - MatrixBase::eigenvalues(), 21 | * - MatrixBase::operatorNorm() 22 | * 23 | * \code 24 | * #include 25 | * \endcode 26 | */ 27 | 28 | #include "src/Eigenvalues/Tridiagonalization.h" 29 | #include "src/Eigenvalues/RealSchur.h" 30 | #include "src/Eigenvalues/EigenSolver.h" 31 | #include "src/Eigenvalues/SelfAdjointEigenSolver.h" 32 | #include "src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h" 33 | #include "src/Eigenvalues/HessenbergDecomposition.h" 34 | #include "src/Eigenvalues/ComplexSchur.h" 35 | #include "src/Eigenvalues/ComplexEigenSolver.h" 36 | #include "src/Eigenvalues/RealQZ.h" 37 | #include "src/Eigenvalues/GeneralizedEigenSolver.h" 38 | #include "src/Eigenvalues/MatrixBaseEigenvalues.h" 39 | #ifdef EIGEN_USE_LAPACKE 40 | #include "src/Eigenvalues/RealSchur_MKL.h" 41 | #include "src/Eigenvalues/ComplexSchur_MKL.h" 42 | #include "src/Eigenvalues/SelfAdjointEigenSolver_MKL.h" 43 | #endif 44 | 45 | #include "src/Core/util/ReenableStupidWarnings.h" 46 | 47 | #endif // EIGEN_EIGENVALUES_MODULE_H 48 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 49 | -------------------------------------------------------------------------------- /third-party/Eigen/Geometry: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_GEOMETRY_MODULE_H 2 | #define EIGEN_GEOMETRY_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #include "SVD" 9 | #include "LU" 10 | #include 11 | 12 | #ifndef M_PI 13 | #define M_PI 3.14159265358979323846 14 | #endif 15 | 16 | /** \defgroup Geometry_Module Geometry module 17 | * 18 | * 19 | * 20 | * This module provides support for: 21 | * - fixed-size homogeneous transformations 22 | * - translation, scaling, 2D and 3D rotations 23 | * - quaternions 24 | * - \ref MatrixBase::cross() "cross product" 25 | * - \ref MatrixBase::unitOrthogonal() "orthognal vector generation" 26 | * - some linear components: parametrized-lines and hyperplanes 27 | * 28 | * \code 29 | * #include 30 | * \endcode 31 | */ 32 | 33 | #include "src/Geometry/OrthoMethods.h" 34 | #include "src/Geometry/EulerAngles.h" 35 | 36 | #if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS 37 | #include "src/Geometry/Homogeneous.h" 38 | #include "src/Geometry/RotationBase.h" 39 | #include "src/Geometry/Rotation2D.h" 40 | #include "src/Geometry/Quaternion.h" 41 | #include "src/Geometry/AngleAxis.h" 42 | #include "src/Geometry/Transform.h" 43 | #include "src/Geometry/Translation.h" 44 | #include "src/Geometry/Scaling.h" 45 | #include "src/Geometry/Hyperplane.h" 46 | #include "src/Geometry/ParametrizedLine.h" 47 | #include "src/Geometry/AlignedBox.h" 48 | #include "src/Geometry/Umeyama.h" 49 | 50 | #if defined EIGEN_VECTORIZE_SSE 51 | #include "src/Geometry/arch/Geometry_SSE.h" 52 | #endif 53 | #endif 54 | 55 | #ifdef EIGEN2_SUPPORT 56 | #include "src/Eigen2Support/Geometry/All.h" 57 | #endif 58 | 59 | #include "src/Core/util/ReenableStupidWarnings.h" 60 | 61 | #endif // EIGEN_GEOMETRY_MODULE_H 62 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 63 | 64 | -------------------------------------------------------------------------------- /third-party/Eigen/Householder: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_HOUSEHOLDER_MODULE_H 2 | #define EIGEN_HOUSEHOLDER_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | /** \defgroup Householder_Module Householder module 9 | * This module provides Householder transformations. 10 | * 11 | * \code 12 | * #include 13 | * \endcode 14 | */ 15 | 16 | #include "src/Householder/Householder.h" 17 | #include "src/Householder/HouseholderSequence.h" 18 | #include "src/Householder/BlockHouseholder.h" 19 | 20 | #include "src/Core/util/ReenableStupidWarnings.h" 21 | 22 | #endif // EIGEN_HOUSEHOLDER_MODULE_H 23 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 24 | -------------------------------------------------------------------------------- /third-party/Eigen/IterativeLinearSolvers: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_ITERATIVELINEARSOLVERS_MODULE_H 2 | #define EIGEN_ITERATIVELINEARSOLVERS_MODULE_H 3 | 4 | #include "SparseCore" 5 | #include "OrderingMethods" 6 | 7 | #include "src/Core/util/DisableStupidWarnings.h" 8 | 9 | /** 10 | * \defgroup IterativeLinearSolvers_Module IterativeLinearSolvers module 11 | * 12 | * This module currently provides iterative methods to solve problems of the form \c A \c x = \c b, where \c A is a squared matrix, usually very large and sparse. 13 | * Those solvers are accessible via the following classes: 14 | * - ConjugateGradient for selfadjoint (hermitian) matrices, 15 | * - BiCGSTAB for general square matrices. 16 | * 17 | * These iterative solvers are associated with some preconditioners: 18 | * - IdentityPreconditioner - not really useful 19 | * - DiagonalPreconditioner - also called JAcobi preconditioner, work very well on diagonal dominant matrices. 20 | * - IncompleteILUT - incomplete LU factorization with dual thresholding 21 | * 22 | * Such problems can also be solved using the direct sparse decomposition modules: SparseCholesky, CholmodSupport, UmfPackSupport, SuperLUSupport. 23 | * 24 | * \code 25 | * #include 26 | * \endcode 27 | */ 28 | 29 | #include "src/misc/Solve.h" 30 | #include "src/misc/SparseSolve.h" 31 | 32 | #include "src/IterativeLinearSolvers/IterativeSolverBase.h" 33 | #include "src/IterativeLinearSolvers/BasicPreconditioners.h" 34 | #include "src/IterativeLinearSolvers/ConjugateGradient.h" 35 | #include "src/IterativeLinearSolvers/BiCGSTAB.h" 36 | #include "src/IterativeLinearSolvers/IncompleteLUT.h" 37 | 38 | #include "src/Core/util/ReenableStupidWarnings.h" 39 | 40 | #endif // EIGEN_ITERATIVELINEARSOLVERS_MODULE_H 41 | -------------------------------------------------------------------------------- /third-party/Eigen/Jacobi: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_JACOBI_MODULE_H 2 | #define EIGEN_JACOBI_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | /** \defgroup Jacobi_Module Jacobi module 9 | * This module provides Jacobi and Givens rotations. 10 | * 11 | * \code 12 | * #include 13 | * \endcode 14 | * 15 | * In addition to listed classes, it defines the two following MatrixBase methods to apply a Jacobi or Givens rotation: 16 | * - MatrixBase::applyOnTheLeft() 17 | * - MatrixBase::applyOnTheRight(). 18 | */ 19 | 20 | #include "src/Jacobi/Jacobi.h" 21 | 22 | #include "src/Core/util/ReenableStupidWarnings.h" 23 | 24 | #endif // EIGEN_JACOBI_MODULE_H 25 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 26 | 27 | -------------------------------------------------------------------------------- /third-party/Eigen/LU: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_LU_MODULE_H 2 | #define EIGEN_LU_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | /** \defgroup LU_Module LU module 9 | * This module includes %LU decomposition and related notions such as matrix inversion and determinant. 10 | * This module defines the following MatrixBase methods: 11 | * - MatrixBase::inverse() 12 | * - MatrixBase::determinant() 13 | * 14 | * \code 15 | * #include 16 | * \endcode 17 | */ 18 | 19 | #include "src/misc/Solve.h" 20 | #include "src/misc/Kernel.h" 21 | #include "src/misc/Image.h" 22 | #include "src/LU/FullPivLU.h" 23 | #include "src/LU/PartialPivLU.h" 24 | #ifdef EIGEN_USE_LAPACKE 25 | #include "src/LU/PartialPivLU_MKL.h" 26 | #endif 27 | #include "src/LU/Determinant.h" 28 | #include "src/LU/Inverse.h" 29 | 30 | #if defined EIGEN_VECTORIZE_SSE 31 | #include "src/LU/arch/Inverse_SSE.h" 32 | #endif 33 | 34 | #ifdef EIGEN2_SUPPORT 35 | #include "src/Eigen2Support/LU.h" 36 | #endif 37 | 38 | #include "src/Core/util/ReenableStupidWarnings.h" 39 | 40 | #endif // EIGEN_LU_MODULE_H 41 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 42 | -------------------------------------------------------------------------------- /third-party/Eigen/LeastSquares: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_REGRESSION_MODULE_H 2 | #define EIGEN_REGRESSION_MODULE_H 3 | 4 | #ifndef EIGEN2_SUPPORT 5 | #error LeastSquares is only available in Eigen2 support mode (define EIGEN2_SUPPORT) 6 | #endif 7 | 8 | // exclude from normal eigen3-only documentation 9 | #ifdef EIGEN2_SUPPORT 10 | 11 | #include "Core" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | #include "Eigenvalues" 16 | #include "Geometry" 17 | 18 | /** \defgroup LeastSquares_Module LeastSquares module 19 | * This module provides linear regression and related features. 20 | * 21 | * \code 22 | * #include 23 | * \endcode 24 | */ 25 | 26 | #include "src/Eigen2Support/LeastSquares.h" 27 | 28 | #include "src/Core/util/ReenableStupidWarnings.h" 29 | 30 | #endif // EIGEN2_SUPPORT 31 | 32 | #endif // EIGEN_REGRESSION_MODULE_H 33 | -------------------------------------------------------------------------------- /third-party/Eigen/MetisSupport: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_METISSUPPORT_MODULE_H 2 | #define EIGEN_METISSUPPORT_MODULE_H 3 | 4 | #include "SparseCore" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | extern "C" { 9 | #include 10 | } 11 | 12 | 13 | /** \ingroup Support_modules 14 | * \defgroup MetisSupport_Module MetisSupport module 15 | * 16 | * \code 17 | * #include 18 | * \endcode 19 | * This module defines an interface to the METIS reordering package (http://glaros.dtc.umn.edu/gkhome/views/metis). 20 | * It can be used just as any other built-in method as explained in \link OrderingMethods_Module here. \endlink 21 | */ 22 | 23 | 24 | #include "src/MetisSupport/MetisSupport.h" 25 | 26 | #include "src/Core/util/ReenableStupidWarnings.h" 27 | 28 | #endif // EIGEN_METISSUPPORT_MODULE_H 29 | -------------------------------------------------------------------------------- /third-party/Eigen/PaStiXSupport: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_PASTIXSUPPORT_MODULE_H 2 | #define EIGEN_PASTIXSUPPORT_MODULE_H 3 | 4 | #include "SparseCore" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #include 9 | extern "C" { 10 | #include 11 | #include 12 | } 13 | 14 | #ifdef complex 15 | #undef complex 16 | #endif 17 | 18 | /** \ingroup Support_modules 19 | * \defgroup PaStiXSupport_Module PaStiXSupport module 20 | * 21 | * This module provides an interface to the PaSTiX library. 22 | * PaSTiX is a general \b supernodal, \b parallel and \b opensource sparse solver. 23 | * It provides the two following main factorization classes: 24 | * - class PastixLLT : a supernodal, parallel LLt Cholesky factorization. 25 | * - class PastixLDLT: a supernodal, parallel LDLt Cholesky factorization. 26 | * - class PastixLU : a supernodal, parallel LU factorization (optimized for a symmetric pattern). 27 | * 28 | * \code 29 | * #include 30 | * \endcode 31 | * 32 | * In order to use this module, the PaSTiX headers must be accessible from the include paths, and your binary must be linked to the PaSTiX library and its dependencies. 33 | * The dependencies depend on how PaSTiX has been compiled. 34 | * For a cmake based project, you can use our FindPaSTiX.cmake module to help you in this task. 35 | * 36 | */ 37 | 38 | #include "src/misc/Solve.h" 39 | #include "src/misc/SparseSolve.h" 40 | 41 | #include "src/PaStiXSupport/PaStiXSupport.h" 42 | 43 | 44 | #include "src/Core/util/ReenableStupidWarnings.h" 45 | 46 | #endif // EIGEN_PASTIXSUPPORT_MODULE_H 47 | -------------------------------------------------------------------------------- /third-party/Eigen/PardisoSupport: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_PARDISOSUPPORT_MODULE_H 2 | #define EIGEN_PARDISOSUPPORT_MODULE_H 3 | 4 | #include "SparseCore" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #include 9 | 10 | #include 11 | 12 | /** \ingroup Support_modules 13 | * \defgroup PardisoSupport_Module PardisoSupport module 14 | * 15 | * This module brings support for the Intel(R) MKL PARDISO direct sparse solvers. 16 | * 17 | * \code 18 | * #include 19 | * \endcode 20 | * 21 | * In order to use this module, the MKL headers must be accessible from the include paths, and your binary must be linked to the MKL library and its dependencies. 22 | * See this \ref TopicUsingIntelMKL "page" for more information on MKL-Eigen integration. 23 | * 24 | */ 25 | 26 | #include "src/PardisoSupport/PardisoSupport.h" 27 | 28 | #include "src/Core/util/ReenableStupidWarnings.h" 29 | 30 | #endif // EIGEN_PARDISOSUPPORT_MODULE_H 31 | -------------------------------------------------------------------------------- /third-party/Eigen/QR: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_QR_MODULE_H 2 | #define EIGEN_QR_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #include "Cholesky" 9 | #include "Jacobi" 10 | #include "Householder" 11 | 12 | /** \defgroup QR_Module QR module 13 | * 14 | * 15 | * 16 | * This module provides various QR decompositions 17 | * This module also provides some MatrixBase methods, including: 18 | * - MatrixBase::qr(), 19 | * 20 | * \code 21 | * #include 22 | * \endcode 23 | */ 24 | 25 | #include "src/misc/Solve.h" 26 | #include "src/QR/HouseholderQR.h" 27 | #include "src/QR/FullPivHouseholderQR.h" 28 | #include "src/QR/ColPivHouseholderQR.h" 29 | #ifdef EIGEN_USE_LAPACKE 30 | #include "src/QR/HouseholderQR_MKL.h" 31 | #include "src/QR/ColPivHouseholderQR_MKL.h" 32 | #endif 33 | 34 | #ifdef EIGEN2_SUPPORT 35 | #include "src/Eigen2Support/QR.h" 36 | #endif 37 | 38 | #include "src/Core/util/ReenableStupidWarnings.h" 39 | 40 | #ifdef EIGEN2_SUPPORT 41 | #include "Eigenvalues" 42 | #endif 43 | 44 | #endif // EIGEN_QR_MODULE_H 45 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 46 | -------------------------------------------------------------------------------- /third-party/Eigen/QtAlignedMalloc: -------------------------------------------------------------------------------- 1 | 2 | #ifndef EIGEN_QTMALLOC_MODULE_H 3 | #define EIGEN_QTMALLOC_MODULE_H 4 | 5 | #include "Core" 6 | 7 | #if (!EIGEN_MALLOC_ALREADY_ALIGNED) 8 | 9 | #include "src/Core/util/DisableStupidWarnings.h" 10 | 11 | void *qMalloc(size_t size) 12 | { 13 | return Eigen::internal::aligned_malloc(size); 14 | } 15 | 16 | void qFree(void *ptr) 17 | { 18 | Eigen::internal::aligned_free(ptr); 19 | } 20 | 21 | void *qRealloc(void *ptr, size_t size) 22 | { 23 | void* newPtr = Eigen::internal::aligned_malloc(size); 24 | memcpy(newPtr, ptr, size); 25 | Eigen::internal::aligned_free(ptr); 26 | return newPtr; 27 | } 28 | 29 | #include "src/Core/util/ReenableStupidWarnings.h" 30 | 31 | #endif 32 | 33 | #endif // EIGEN_QTMALLOC_MODULE_H 34 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 35 | -------------------------------------------------------------------------------- /third-party/Eigen/SPQRSupport: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_SPQRSUPPORT_MODULE_H 2 | #define EIGEN_SPQRSUPPORT_MODULE_H 3 | 4 | #include "SparseCore" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #include "SuiteSparseQR.hpp" 9 | 10 | /** \ingroup Support_modules 11 | * \defgroup SPQRSupport_Module SuiteSparseQR module 12 | * 13 | * This module provides an interface to the SPQR library, which is part of the suitesparse package. 14 | * 15 | * \code 16 | * #include 17 | * \endcode 18 | * 19 | * In order to use this module, the SPQR headers must be accessible from the include paths, and your binary must be linked to the SPQR library and its dependencies (Cholmod, AMD, COLAMD,...). 20 | * For a cmake based project, you can use our FindSPQR.cmake and FindCholmod.Cmake modules 21 | * 22 | */ 23 | 24 | #include "src/misc/Solve.h" 25 | #include "src/misc/SparseSolve.h" 26 | #include "src/CholmodSupport/CholmodSupport.h" 27 | #include "src/SPQRSupport/SuiteSparseQRSupport.h" 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /third-party/Eigen/SVD: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_SVD_MODULE_H 2 | #define EIGEN_SVD_MODULE_H 3 | 4 | #include "QR" 5 | #include "Householder" 6 | #include "Jacobi" 7 | 8 | #include "src/Core/util/DisableStupidWarnings.h" 9 | 10 | /** \defgroup SVD_Module SVD module 11 | * 12 | * 13 | * 14 | * This module provides SVD decomposition for matrices (both real and complex). 15 | * This decomposition is accessible via the following MatrixBase method: 16 | * - MatrixBase::jacobiSvd() 17 | * 18 | * \code 19 | * #include 20 | * \endcode 21 | */ 22 | 23 | #include "src/misc/Solve.h" 24 | #include "src/SVD/JacobiSVD.h" 25 | #if defined(EIGEN_USE_LAPACKE) && !defined(EIGEN_USE_LAPACKE_STRICT) 26 | #include "src/SVD/JacobiSVD_MKL.h" 27 | #endif 28 | #include "src/SVD/UpperBidiagonalization.h" 29 | 30 | #ifdef EIGEN2_SUPPORT 31 | #include "src/Eigen2Support/SVD.h" 32 | #endif 33 | 34 | #include "src/Core/util/ReenableStupidWarnings.h" 35 | 36 | #endif // EIGEN_SVD_MODULE_H 37 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 38 | -------------------------------------------------------------------------------- /third-party/Eigen/Sparse: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_SPARSE_MODULE_H 2 | #define EIGEN_SPARSE_MODULE_H 3 | 4 | /** \defgroup Sparse_Module Sparse meta-module 5 | * 6 | * Meta-module including all related modules: 7 | * - \ref SparseCore_Module 8 | * - \ref OrderingMethods_Module 9 | * - \ref SparseCholesky_Module 10 | * - \ref SparseLU_Module 11 | * - \ref SparseQR_Module 12 | * - \ref IterativeLinearSolvers_Module 13 | * 14 | * \code 15 | * #include 16 | * \endcode 17 | */ 18 | 19 | #include "SparseCore" 20 | #include "OrderingMethods" 21 | #include "SparseCholesky" 22 | #include "SparseLU" 23 | #include "SparseQR" 24 | #include "IterativeLinearSolvers" 25 | 26 | #endif // EIGEN_SPARSE_MODULE_H 27 | 28 | -------------------------------------------------------------------------------- /third-party/Eigen/SparseCholesky: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2008-2013 Gael Guennebaud 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla 7 | // Public License v. 2.0. If a copy of the MPL was not distributed 8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #ifndef EIGEN_SPARSECHOLESKY_MODULE_H 11 | #define EIGEN_SPARSECHOLESKY_MODULE_H 12 | 13 | #include "SparseCore" 14 | #include "OrderingMethods" 15 | 16 | #include "src/Core/util/DisableStupidWarnings.h" 17 | 18 | /** 19 | * \defgroup SparseCholesky_Module SparseCholesky module 20 | * 21 | * This module currently provides two variants of the direct sparse Cholesky decomposition for selfadjoint (hermitian) matrices. 22 | * Those decompositions are accessible via the following classes: 23 | * - SimplicialLLt, 24 | * - SimplicialLDLt 25 | * 26 | * Such problems can also be solved using the ConjugateGradient solver from the IterativeLinearSolvers module. 27 | * 28 | * \code 29 | * #include 30 | * \endcode 31 | */ 32 | 33 | #ifdef EIGEN_MPL2_ONLY 34 | #error The SparseCholesky module has nothing to offer in MPL2 only mode 35 | #endif 36 | 37 | #include "src/misc/Solve.h" 38 | #include "src/misc/SparseSolve.h" 39 | #include "src/SparseCholesky/SimplicialCholesky.h" 40 | 41 | #ifndef EIGEN_MPL2_ONLY 42 | #include "src/SparseCholesky/SimplicialCholesky_impl.h" 43 | #endif 44 | 45 | #include "src/Core/util/ReenableStupidWarnings.h" 46 | 47 | #endif // EIGEN_SPARSECHOLESKY_MODULE_H 48 | -------------------------------------------------------------------------------- /third-party/Eigen/SparseCore: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_SPARSECORE_MODULE_H 2 | #define EIGEN_SPARSECORE_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | /** 15 | * \defgroup SparseCore_Module SparseCore module 16 | * 17 | * This module provides a sparse matrix representation, and basic associatd matrix manipulations 18 | * and operations. 19 | * 20 | * See the \ref TutorialSparse "Sparse tutorial" 21 | * 22 | * \code 23 | * #include 24 | * \endcode 25 | * 26 | * This module depends on: Core. 27 | */ 28 | 29 | namespace Eigen { 30 | 31 | /** The type used to identify a general sparse storage. */ 32 | struct Sparse {}; 33 | 34 | } 35 | 36 | #include "src/SparseCore/SparseUtil.h" 37 | #include "src/SparseCore/SparseMatrixBase.h" 38 | #include "src/SparseCore/CompressedStorage.h" 39 | #include "src/SparseCore/AmbiVector.h" 40 | #include "src/SparseCore/SparseMatrix.h" 41 | #include "src/SparseCore/MappedSparseMatrix.h" 42 | #include "src/SparseCore/SparseVector.h" 43 | #include "src/SparseCore/SparseBlock.h" 44 | #include "src/SparseCore/SparseTranspose.h" 45 | #include "src/SparseCore/SparseCwiseUnaryOp.h" 46 | #include "src/SparseCore/SparseCwiseBinaryOp.h" 47 | #include "src/SparseCore/SparseDot.h" 48 | #include "src/SparseCore/SparsePermutation.h" 49 | #include "src/SparseCore/SparseRedux.h" 50 | #include "src/SparseCore/SparseFuzzy.h" 51 | #include "src/SparseCore/ConservativeSparseSparseProduct.h" 52 | #include "src/SparseCore/SparseSparseProductWithPruning.h" 53 | #include "src/SparseCore/SparseProduct.h" 54 | #include "src/SparseCore/SparseDenseProduct.h" 55 | #include "src/SparseCore/SparseDiagonalProduct.h" 56 | #include "src/SparseCore/SparseTriangularView.h" 57 | #include "src/SparseCore/SparseSelfAdjointView.h" 58 | #include "src/SparseCore/TriangularSolver.h" 59 | #include "src/SparseCore/SparseView.h" 60 | 61 | #include "src/Core/util/ReenableStupidWarnings.h" 62 | 63 | #endif // EIGEN_SPARSECORE_MODULE_H 64 | 65 | -------------------------------------------------------------------------------- /third-party/Eigen/SparseLU: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2012 Désiré Nuentsa-Wakam 5 | // Copyright (C) 2012 Gael Guennebaud 6 | // 7 | // This Source Code Form is subject to the terms of the Mozilla 8 | // Public License v. 2.0. If a copy of the MPL was not distributed 9 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | #ifndef EIGEN_SPARSELU_MODULE_H 12 | #define EIGEN_SPARSELU_MODULE_H 13 | 14 | #include "SparseCore" 15 | 16 | /** 17 | * \defgroup SparseLU_Module SparseLU module 18 | * This module defines a supernodal factorization of general sparse matrices. 19 | * The code is fully optimized for supernode-panel updates with specialized kernels. 20 | * Please, see the documentation of the SparseLU class for more details. 21 | */ 22 | 23 | #include "src/misc/Solve.h" 24 | #include "src/misc/SparseSolve.h" 25 | 26 | // Ordering interface 27 | #include "OrderingMethods" 28 | 29 | #include "src/SparseLU/SparseLU_gemm_kernel.h" 30 | 31 | #include "src/SparseLU/SparseLU_Structs.h" 32 | #include "src/SparseLU/SparseLU_SupernodalMatrix.h" 33 | #include "src/SparseLU/SparseLUImpl.h" 34 | #include "src/SparseCore/SparseColEtree.h" 35 | #include "src/SparseLU/SparseLU_Memory.h" 36 | #include "src/SparseLU/SparseLU_heap_relax_snode.h" 37 | #include "src/SparseLU/SparseLU_relax_snode.h" 38 | #include "src/SparseLU/SparseLU_pivotL.h" 39 | #include "src/SparseLU/SparseLU_panel_dfs.h" 40 | #include "src/SparseLU/SparseLU_kernel_bmod.h" 41 | #include "src/SparseLU/SparseLU_panel_bmod.h" 42 | #include "src/SparseLU/SparseLU_column_dfs.h" 43 | #include "src/SparseLU/SparseLU_column_bmod.h" 44 | #include "src/SparseLU/SparseLU_copy_to_ucol.h" 45 | #include "src/SparseLU/SparseLU_pruneL.h" 46 | #include "src/SparseLU/SparseLU_Utils.h" 47 | #include "src/SparseLU/SparseLU.h" 48 | 49 | #endif // EIGEN_SPARSELU_MODULE_H 50 | -------------------------------------------------------------------------------- /third-party/Eigen/SparseQR: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_SPARSEQR_MODULE_H 2 | #define EIGEN_SPARSEQR_MODULE_H 3 | 4 | #include "SparseCore" 5 | #include "OrderingMethods" 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | /** \defgroup SparseQR_Module SparseQR module 9 | * \brief Provides QR decomposition for sparse matrices 10 | * 11 | * This module provides a simplicial version of the left-looking Sparse QR decomposition. 12 | * The columns of the input matrix should be reordered to limit the fill-in during the 13 | * decomposition. Built-in methods (COLAMD, AMD) or external methods (METIS) can be used to this end. 14 | * See the \link OrderingMethods_Module OrderingMethods\endlink module for the list 15 | * of built-in and external ordering methods. 16 | * 17 | * \code 18 | * #include 19 | * \endcode 20 | * 21 | * 22 | */ 23 | 24 | #include "src/misc/Solve.h" 25 | #include "src/misc/SparseSolve.h" 26 | 27 | #include "OrderingMethods" 28 | #include "src/SparseCore/SparseColEtree.h" 29 | #include "src/SparseQR/SparseQR.h" 30 | 31 | #include "src/Core/util/ReenableStupidWarnings.h" 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /third-party/Eigen/StdDeque: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Gael Guennebaud 5 | // Copyright (C) 2009 Hauke Heibel 6 | // 7 | // This Source Code Form is subject to the terms of the Mozilla 8 | // Public License v. 2.0. If a copy of the MPL was not distributed 9 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | #ifndef EIGEN_STDDEQUE_MODULE_H 12 | #define EIGEN_STDDEQUE_MODULE_H 13 | 14 | #include "Core" 15 | #include 16 | 17 | #if (defined(_MSC_VER) && defined(_WIN64)) /* MSVC auto aligns in 64 bit builds */ 18 | 19 | #define EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(...) 20 | 21 | #else 22 | 23 | #include "src/StlSupport/StdDeque.h" 24 | 25 | #endif 26 | 27 | #endif // EIGEN_STDDEQUE_MODULE_H 28 | -------------------------------------------------------------------------------- /third-party/Eigen/StdList: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Hauke Heibel 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla 7 | // Public License v. 2.0. If a copy of the MPL was not distributed 8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #ifndef EIGEN_STDLIST_MODULE_H 11 | #define EIGEN_STDLIST_MODULE_H 12 | 13 | #include "Core" 14 | #include 15 | 16 | #if (defined(_MSC_VER) && defined(_WIN64)) /* MSVC auto aligns in 64 bit builds */ 17 | 18 | #define EIGEN_DEFINE_STL_LIST_SPECIALIZATION(...) 19 | 20 | #else 21 | 22 | #include "src/StlSupport/StdList.h" 23 | 24 | #endif 25 | 26 | #endif // EIGEN_STDLIST_MODULE_H 27 | -------------------------------------------------------------------------------- /third-party/Eigen/StdVector: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Gael Guennebaud 5 | // Copyright (C) 2009 Hauke Heibel 6 | // 7 | // This Source Code Form is subject to the terms of the Mozilla 8 | // Public License v. 2.0. If a copy of the MPL was not distributed 9 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | #ifndef EIGEN_STDVECTOR_MODULE_H 12 | #define EIGEN_STDVECTOR_MODULE_H 13 | 14 | #include "Core" 15 | #include 16 | 17 | #if (defined(_MSC_VER) && defined(_WIN64)) /* MSVC auto aligns in 64 bit builds */ 18 | 19 | #define EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(...) 20 | 21 | #else 22 | 23 | #include "src/StlSupport/StdVector.h" 24 | 25 | #endif 26 | 27 | #endif // EIGEN_STDVECTOR_MODULE_H 28 | -------------------------------------------------------------------------------- /third-party/Eigen/SuperLUSupport: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_SUPERLUSUPPORT_MODULE_H 2 | #define EIGEN_SUPERLUSUPPORT_MODULE_H 3 | 4 | #include "SparseCore" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #ifdef EMPTY 9 | #define EIGEN_EMPTY_WAS_ALREADY_DEFINED 10 | #endif 11 | 12 | typedef int int_t; 13 | #include 14 | #include 15 | #include 16 | 17 | // slu_util.h defines a preprocessor token named EMPTY which is really polluting, 18 | // so we remove it in favor of a SUPERLU_EMPTY token. 19 | // If EMPTY was already defined then we don't undef it. 20 | 21 | #if defined(EIGEN_EMPTY_WAS_ALREADY_DEFINED) 22 | # undef EIGEN_EMPTY_WAS_ALREADY_DEFINED 23 | #elif defined(EMPTY) 24 | # undef EMPTY 25 | #endif 26 | 27 | #define SUPERLU_EMPTY (-1) 28 | 29 | namespace Eigen { struct SluMatrix; } 30 | 31 | /** \ingroup Support_modules 32 | * \defgroup SuperLUSupport_Module SuperLUSupport module 33 | * 34 | * This module provides an interface to the SuperLU library. 35 | * It provides the following factorization class: 36 | * - class SuperLU: a supernodal sequential LU factorization. 37 | * - class SuperILU: a supernodal sequential incomplete LU factorization (to be used as a preconditioner for iterative methods). 38 | * 39 | * \warning When including this module, you have to use SUPERLU_EMPTY instead of EMPTY which is no longer defined because it is too polluting. 40 | * 41 | * \code 42 | * #include 43 | * \endcode 44 | * 45 | * In order to use this module, the superlu headers must be accessible from the include paths, and your binary must be linked to the superlu library and its dependencies. 46 | * The dependencies depend on how superlu has been compiled. 47 | * For a cmake based project, you can use our FindSuperLU.cmake module to help you in this task. 48 | * 49 | */ 50 | 51 | #include "src/misc/Solve.h" 52 | #include "src/misc/SparseSolve.h" 53 | 54 | #include "src/SuperLUSupport/SuperLUSupport.h" 55 | 56 | 57 | #include "src/Core/util/ReenableStupidWarnings.h" 58 | 59 | #endif // EIGEN_SUPERLUSUPPORT_MODULE_H 60 | -------------------------------------------------------------------------------- /third-party/Eigen/UmfPackSupport: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_UMFPACKSUPPORT_MODULE_H 2 | #define EIGEN_UMFPACKSUPPORT_MODULE_H 3 | 4 | #include "SparseCore" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | extern "C" { 9 | #include 10 | } 11 | 12 | /** \ingroup Support_modules 13 | * \defgroup UmfPackSupport_Module UmfPackSupport module 14 | * 15 | * This module provides an interface to the UmfPack library which is part of the suitesparse package. 16 | * It provides the following factorization class: 17 | * - class UmfPackLU: a multifrontal sequential LU factorization. 18 | * 19 | * \code 20 | * #include 21 | * \endcode 22 | * 23 | * In order to use this module, the umfpack headers must be accessible from the include paths, and your binary must be linked to the umfpack library and its dependencies. 24 | * The dependencies depend on how umfpack has been compiled. 25 | * For a cmake based project, you can use our FindUmfPack.cmake module to help you in this task. 26 | * 27 | */ 28 | 29 | #include "src/misc/Solve.h" 30 | #include "src/misc/SparseSolve.h" 31 | 32 | #include "src/UmfPackSupport/UmfPackSupport.h" 33 | 34 | #include "src/Core/util/ReenableStupidWarnings.h" 35 | 36 | #endif // EIGEN_UMFPACKSUPPORT_MODULE_H 37 | -------------------------------------------------------------------------------- /third-party/Eigen/src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB Eigen_src_subdirectories "*") 2 | escape_string_as_regex(ESCAPED_CMAKE_CURRENT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") 3 | foreach(f ${Eigen_src_subdirectories}) 4 | if(NOT f MATCHES "\\.txt" AND NOT f MATCHES "${ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/[.].+" ) 5 | add_subdirectory(${f}) 6 | endif() 7 | endforeach() 8 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Cholesky/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_Cholesky_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_Cholesky_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Cholesky COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/CholmodSupport/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_CholmodSupport_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_CholmodSupport_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/CholmodSupport COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Core/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_Core_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_Core_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Core COMPONENT Devel 6 | ) 7 | 8 | ADD_SUBDIRECTORY(products) 9 | ADD_SUBDIRECTORY(util) 10 | ADD_SUBDIRECTORY(arch) 11 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Core/arch/AltiVec/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_Core_arch_AltiVec_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_Core_arch_AltiVec_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Core/arch/AltiVec COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Core/arch/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ADD_SUBDIRECTORY(SSE) 2 | ADD_SUBDIRECTORY(AltiVec) 3 | ADD_SUBDIRECTORY(NEON) 4 | ADD_SUBDIRECTORY(Default) 5 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Core/arch/Default/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_Core_arch_Default_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_Core_arch_Default_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Core/arch/Default COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Core/arch/Default/Settings.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2008-2010 Gael Guennebaud 5 | // Copyright (C) 2006-2008 Benoit Jacob 6 | // 7 | // This Source Code Form is subject to the terms of the Mozilla 8 | // Public License v. 2.0. If a copy of the MPL was not distributed 9 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | 12 | /* All the parameters defined in this file can be specialized in the 13 | * architecture specific files, and/or by the user. 14 | * More to come... */ 15 | 16 | #ifndef EIGEN_DEFAULT_SETTINGS_H 17 | #define EIGEN_DEFAULT_SETTINGS_H 18 | 19 | /** Defines the maximal loop size to enable meta unrolling of loops. 20 | * Note that the value here is expressed in Eigen's own notion of "number of FLOPS", 21 | * it does not correspond to the number of iterations or the number of instructions 22 | */ 23 | #ifndef EIGEN_UNROLLING_LIMIT 24 | #define EIGEN_UNROLLING_LIMIT 100 25 | #endif 26 | 27 | /** Defines the threshold between a "small" and a "large" matrix. 28 | * This threshold is mainly used to select the proper product implementation. 29 | */ 30 | #ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 31 | #define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8 32 | #endif 33 | 34 | /** Defines the maximal width of the blocks used in the triangular product and solver 35 | * for vectors (level 2 blas xTRMV and xTRSV). The default is 8. 36 | */ 37 | #ifndef EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH 38 | #define EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH 8 39 | #endif 40 | 41 | 42 | /** Defines the default number of registers available for that architecture. 43 | * Currently it must be 8 or 16. Other values will fail. 44 | */ 45 | #ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 46 | #define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 8 47 | #endif 48 | 49 | #endif // EIGEN_DEFAULT_SETTINGS_H 50 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Core/arch/NEON/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_Core_arch_NEON_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_Core_arch_NEON_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Core/arch/NEON COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Core/arch/SSE/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_Core_arch_SSE_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_Core_arch_SSE_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Core/arch/SSE COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Core/products/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_Core_Product_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_Core_Product_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Core/products COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Core/util/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_Core_util_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_Core_util_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Core/util COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Core/util/NonMPL2.h: -------------------------------------------------------------------------------- 1 | #ifdef EIGEN_MPL2_ONLY 2 | #error Including non-MPL2 code in EIGEN_MPL2_ONLY mode 3 | #endif 4 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Core/util/ReenableStupidWarnings.h: -------------------------------------------------------------------------------- 1 | #ifdef EIGEN_WARNINGS_DISABLED 2 | #undef EIGEN_WARNINGS_DISABLED 3 | 4 | #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS 5 | #ifdef _MSC_VER 6 | #pragma warning( pop ) 7 | #elif defined __INTEL_COMPILER 8 | #pragma warning pop 9 | #elif defined __clang__ 10 | #pragma clang diagnostic pop 11 | #endif 12 | #endif 13 | 14 | #endif // EIGEN_WARNINGS_DISABLED 15 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Eigen2Support/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_Eigen2Support_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_Eigen2Support_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Eigen2Support COMPONENT Devel 6 | ) 7 | 8 | ADD_SUBDIRECTORY(Geometry) -------------------------------------------------------------------------------- /third-party/Eigen/src/Eigen2Support/Geometry/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_Eigen2Support_Geometry_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_Eigen2Support_Geometry_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Eigen2Support/Geometry 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Eigen2Support/Macros.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2011 Benoit Jacob 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla 7 | // Public License v. 2.0. If a copy of the MPL was not distributed 8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #ifndef EIGEN2_MACROS_H 11 | #define EIGEN2_MACROS_H 12 | 13 | #define ei_assert eigen_assert 14 | #define ei_internal_assert eigen_internal_assert 15 | 16 | #define EIGEN_ALIGN_128 EIGEN_ALIGN16 17 | 18 | #define EIGEN_ARCH_WANTS_ALIGNMENT EIGEN_ALIGN_STATICALLY 19 | 20 | #endif // EIGEN2_MACROS_H 21 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Eigen2Support/Memory.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2011 Benoit Jacob 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla 7 | // Public License v. 2.0. If a copy of the MPL was not distributed 8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #ifndef EIGEN2_MEMORY_H 11 | #define EIGEN2_MEMORY_H 12 | 13 | namespace Eigen { 14 | 15 | inline void* ei_aligned_malloc(size_t size) { return internal::aligned_malloc(size); } 16 | inline void ei_aligned_free(void *ptr) { internal::aligned_free(ptr); } 17 | inline void* ei_aligned_realloc(void *ptr, size_t new_size, size_t old_size) { return internal::aligned_realloc(ptr, new_size, old_size); } 18 | inline void* ei_handmade_aligned_malloc(size_t size) { return internal::handmade_aligned_malloc(size); } 19 | inline void ei_handmade_aligned_free(void *ptr) { internal::handmade_aligned_free(ptr); } 20 | 21 | template inline void* ei_conditional_aligned_malloc(size_t size) 22 | { 23 | return internal::conditional_aligned_malloc(size); 24 | } 25 | template inline void ei_conditional_aligned_free(void *ptr) 26 | { 27 | internal::conditional_aligned_free(ptr); 28 | } 29 | template inline void* ei_conditional_aligned_realloc(void* ptr, size_t new_size, size_t old_size) 30 | { 31 | return internal::conditional_aligned_realloc(ptr, new_size, old_size); 32 | } 33 | 34 | template inline T* ei_aligned_new(size_t size) 35 | { 36 | return internal::aligned_new(size); 37 | } 38 | template inline void ei_aligned_delete(T *ptr, size_t size) 39 | { 40 | return internal::aligned_delete(ptr, size); 41 | } 42 | 43 | } // end namespace Eigen 44 | 45 | #endif // EIGEN2_MACROS_H 46 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Eigen2Support/QR.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2008 Gael Guennebaud 5 | // Copyright (C) 2011 Benoit Jacob 6 | // 7 | // This Source Code Form is subject to the terms of the Mozilla 8 | // Public License v. 2.0. If a copy of the MPL was not distributed 9 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | #ifndef EIGEN2_QR_H 12 | #define EIGEN2_QR_H 13 | 14 | namespace Eigen { 15 | 16 | template 17 | class QR : public HouseholderQR 18 | { 19 | public: 20 | 21 | typedef HouseholderQR Base; 22 | typedef Block MatrixRBlockType; 23 | 24 | QR() : Base() {} 25 | 26 | template 27 | explicit QR(const T& t) : Base(t) {} 28 | 29 | template 30 | bool solve(const MatrixBase& b, ResultType *result) const 31 | { 32 | *result = static_cast(this)->solve(b); 33 | return true; 34 | } 35 | 36 | MatrixType matrixQ(void) const { 37 | MatrixType ret = MatrixType::Identity(this->rows(), this->cols()); 38 | ret = this->householderQ() * ret; 39 | return ret; 40 | } 41 | 42 | bool isFullRank() const { 43 | return true; 44 | } 45 | 46 | const TriangularView 47 | matrixR(void) const 48 | { 49 | int cols = this->cols(); 50 | return MatrixRBlockType(this->matrixQR(), 0, 0, cols, cols).template triangularView(); 51 | } 52 | }; 53 | 54 | /** \return the QR decomposition of \c *this. 55 | * 56 | * \sa class QR 57 | */ 58 | template 59 | const QR::PlainObject> 60 | MatrixBase::qr() const 61 | { 62 | return QR(eval()); 63 | } 64 | 65 | } // end namespace Eigen 66 | 67 | #endif // EIGEN2_QR_H 68 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Eigen2Support/TriangularSolver.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2010 Gael Guennebaud 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla 7 | // Public License v. 2.0. If a copy of the MPL was not distributed 8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #ifndef EIGEN_TRIANGULAR_SOLVER2_H 11 | #define EIGEN_TRIANGULAR_SOLVER2_H 12 | 13 | namespace Eigen { 14 | 15 | const unsigned int UnitDiagBit = UnitDiag; 16 | const unsigned int SelfAdjointBit = SelfAdjoint; 17 | const unsigned int UpperTriangularBit = Upper; 18 | const unsigned int LowerTriangularBit = Lower; 19 | 20 | const unsigned int UpperTriangular = Upper; 21 | const unsigned int LowerTriangular = Lower; 22 | const unsigned int UnitUpperTriangular = UnitUpper; 23 | const unsigned int UnitLowerTriangular = UnitLower; 24 | 25 | template 26 | template 27 | typename ExpressionType::PlainObject 28 | Flagged::solveTriangular(const MatrixBase& other) const 29 | { 30 | return m_matrix.template triangularView().solve(other.derived()); 31 | } 32 | 33 | template 34 | template 35 | void Flagged::solveTriangularInPlace(const MatrixBase& other) const 36 | { 37 | m_matrix.template triangularView().solveInPlace(other.derived()); 38 | } 39 | 40 | } // end namespace Eigen 41 | 42 | #endif // EIGEN_TRIANGULAR_SOLVER2_H 43 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Eigenvalues/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_EIGENVALUES_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_EIGENVALUES_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Eigenvalues COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Geometry/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_Geometry_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_Geometry_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Geometry COMPONENT Devel 6 | ) 7 | 8 | ADD_SUBDIRECTORY(arch) 9 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Geometry/arch/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_Geometry_arch_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_Geometry_arch_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Geometry/arch COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Householder/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_Householder_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_Householder_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Householder COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/IterativeLinearSolvers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_IterativeLinearSolvers_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_IterativeLinearSolvers_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/IterativeLinearSolvers COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/Jacobi/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_Jacobi_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_Jacobi_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Jacobi COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/LU/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_LU_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_LU_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/LU COMPONENT Devel 6 | ) 7 | 8 | ADD_SUBDIRECTORY(arch) 9 | -------------------------------------------------------------------------------- /third-party/Eigen/src/LU/arch/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_LU_arch_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_LU_arch_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/LU/arch COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/MetisSupport/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_MetisSupport_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_MetisSupport_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/MetisSupport COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/OrderingMethods/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_OrderingMethods_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_OrderingMethods_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/OrderingMethods COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/PaStiXSupport/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_PastixSupport_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_PastixSupport_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/PaStiXSupport COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/PardisoSupport/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_PardisoSupport_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_PardisoSupport_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/PardisoSupport COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/QR/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_QR_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_QR_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/QR COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/SPQRSupport/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_SPQRSupport_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_SPQRSupport_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/SPQRSupport/ COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/SVD/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_SVD_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_SVD_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/SVD COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/SparseCholesky/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_SparseCholesky_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_SparseCholesky_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/SparseCholesky COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/SparseCore/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_SparseCore_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_SparseCore_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/SparseCore COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/SparseCore/SparseFuzzy.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2008 Gael Guennebaud 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla 7 | // Public License v. 2.0. If a copy of the MPL was not distributed 8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #ifndef EIGEN_SPARSE_FUZZY_H 11 | #define EIGEN_SPARSE_FUZZY_H 12 | 13 | // template 14 | // template 15 | // bool SparseMatrixBase::isApprox( 16 | // const OtherDerived& other, 17 | // typename NumTraits::Real prec 18 | // ) const 19 | // { 20 | // const typename internal::nested::type nested(derived()); 21 | // const typename internal::nested::type otherNested(other.derived()); 22 | // return (nested - otherNested).cwise().abs2().sum() 23 | // <= prec * prec * (std::min)(nested.cwise().abs2().sum(), otherNested.cwise().abs2().sum()); 24 | // } 25 | 26 | #endif // EIGEN_SPARSE_FUZZY_H 27 | -------------------------------------------------------------------------------- /third-party/Eigen/src/SparseCore/SparseRedux.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2008 Gael Guennebaud 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla 7 | // Public License v. 2.0. If a copy of the MPL was not distributed 8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #ifndef EIGEN_SPARSEREDUX_H 11 | #define EIGEN_SPARSEREDUX_H 12 | 13 | namespace Eigen { 14 | 15 | template 16 | typename internal::traits::Scalar 17 | SparseMatrixBase::sum() const 18 | { 19 | eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix"); 20 | Scalar res(0); 21 | for (Index j=0; j 28 | typename internal::traits >::Scalar 29 | SparseMatrix<_Scalar,_Options,_Index>::sum() const 30 | { 31 | eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix"); 32 | return Matrix::Map(&m_data.value(0), m_data.size()).sum(); 33 | } 34 | 35 | template 36 | typename internal::traits >::Scalar 37 | SparseVector<_Scalar,_Options,_Index>::sum() const 38 | { 39 | eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix"); 40 | return Matrix::Map(&m_data.value(0), m_data.size()).sum(); 41 | } 42 | 43 | } // end namespace Eigen 44 | 45 | #endif // EIGEN_SPARSEREDUX_H 46 | -------------------------------------------------------------------------------- /third-party/Eigen/src/SparseLU/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_SparseLU_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_SparseLU_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/SparseLU COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/SparseQR/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_SparseQR_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_SparseQR_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/SparseQR/ COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/StlSupport/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_StlSupport_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_StlSupport_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/StlSupport COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/SuperLUSupport/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_SuperLUSupport_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_SuperLUSupport_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/SuperLUSupport COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/UmfPackSupport/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_UmfPackSupport_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_UmfPackSupport_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/UmfPackSupport COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/misc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_misc_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_misc_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/misc COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/plugins/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FILE(GLOB Eigen_plugins_SRCS "*.h") 2 | 3 | INSTALL(FILES 4 | ${Eigen_plugins_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/plugins COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /third-party/Eigen/src/plugins/CommonCwiseBinaryOps.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2008-2009 Gael Guennebaud 5 | // Copyright (C) 2006-2008 Benoit Jacob 6 | // 7 | // This Source Code Form is subject to the terms of the Mozilla 8 | // Public License v. 2.0. If a copy of the MPL was not distributed 9 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | // This file is a base class plugin containing common coefficient wise functions. 12 | 13 | /** \returns an expression of the difference of \c *this and \a other 14 | * 15 | * \note If you want to substract a given scalar from all coefficients, see Cwise::operator-(). 16 | * 17 | * \sa class CwiseBinaryOp, operator-=() 18 | */ 19 | EIGEN_MAKE_CWISE_BINARY_OP(operator-,internal::scalar_difference_op) 20 | 21 | /** \returns an expression of the sum of \c *this and \a other 22 | * 23 | * \note If you want to add a given scalar to all coefficients, see Cwise::operator+(). 24 | * 25 | * \sa class CwiseBinaryOp, operator+=() 26 | */ 27 | EIGEN_MAKE_CWISE_BINARY_OP(operator+,internal::scalar_sum_op) 28 | 29 | /** \returns an expression of a custom coefficient-wise operator \a func of *this and \a other 30 | * 31 | * The template parameter \a CustomBinaryOp is the type of the functor 32 | * of the custom operator (see class CwiseBinaryOp for an example) 33 | * 34 | * Here is an example illustrating the use of custom functors: 35 | * \include class_CwiseBinaryOp.cpp 36 | * Output: \verbinclude class_CwiseBinaryOp.out 37 | * 38 | * \sa class CwiseBinaryOp, operator+(), operator-(), cwiseProduct() 39 | */ 40 | template 41 | EIGEN_STRONG_INLINE const CwiseBinaryOp 42 | binaryExpr(const EIGEN_CURRENT_STORAGE_BASE_CLASS &other, const CustomBinaryOp& func = CustomBinaryOp()) const 43 | { 44 | return CwiseBinaryOp(derived(), other.derived(), func); 45 | } 46 | 47 | -------------------------------------------------------------------------------- /third-party/clipper/License.txt: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | http://www.boost.org/LICENSE_1_0.txt 3 | 4 | Permission is hereby granted, free of charge, to any person or organization 5 | obtaining a copy of the software and accompanying documentation covered by 6 | this license (the "Software") to use, reproduce, display, distribute, 7 | execute, and transmit the Software, and to prepare derivative works of the 8 | Software, and to permit third-parties to whom the Software is furnished to 9 | do so, all subject to the following: 10 | 11 | The copyright notices in the Software and this entire statement, including 12 | the above license grant, this restriction and the following disclaimer, 13 | must be included in all copies of the Software, in whole or in part, and 14 | all derivative works of the Software, unless such copies or derivative 15 | works are solely in the form of machine-executable object code generated by 16 | a source language processor. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 21 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 22 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 23 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /third-party/clipper/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/clipper/README -------------------------------------------------------------------------------- /third-party/clipper/clipper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/clipper/clipper.cpp -------------------------------------------------------------------------------- /third-party/cpp_build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | g++ polycont/cpp/examples/test_io.cpp clipper/clipper.cpp -std=c++11 -I. -Ipolycont -o polycont/cpp/examples/test_io.$OSTYPE 3 | g++ polycont/cpp/examples/example_polycont.cpp clipper/clipper.cpp -std=c++11 -I. -Ipolycont -o polycont/cpp/examples/example_polycont.$OSTYPE 4 | #-DNDEBUG -------------------------------------------------------------------------------- /third-party/jsonlab/LICENSE_BSD.txt: -------------------------------------------------------------------------------- 1 | Copyright 2011-2015 Qianqian Fang . All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without modification, are 4 | permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of 7 | conditions and the following disclaimer. 8 | 9 | 2. Redistributions in binary form must reproduce the above copyright notice, this list 10 | of conditions and the following disclaimer in the documentation and/or other materials 11 | provided with the distribution. 12 | 13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY EXPRESS OR IMPLIED 14 | WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 15 | FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS 16 | OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 17 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 18 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 19 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 20 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 21 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 22 | 23 | The views and conclusions contained in the software and documentation are those of the 24 | authors and should not be interpreted as representing official policies, either expressed 25 | or implied, of the copyright holders. 26 | -------------------------------------------------------------------------------- /third-party/jsonlab/README.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/jsonlab/README.txt -------------------------------------------------------------------------------- /third-party/jsonlab/examples/example1.json: -------------------------------------------------------------------------------- 1 | { 2 | "firstName": "John", 3 | "lastName": "Smith", 4 | "age": 25, 5 | "address": 6 | { 7 | "streetAddress": "21 2nd Street", 8 | "city": "New York", 9 | "state": "NY", 10 | "postalCode": "10021" 11 | }, 12 | "phoneNumber": 13 | [ 14 | { 15 | "type": "home", 16 | "number": "212 555-1234" 17 | }, 18 | { 19 | "type": "fax", 20 | "number": "646 555-4567" 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /third-party/jsonlab/examples/example2.json: -------------------------------------------------------------------------------- 1 | { 2 | "glossary": { 3 | "title": "example glossary", 4 | "GlossDiv": { 5 | "title": "S", 6 | "GlossList": { 7 | "GlossEntry": { 8 | "ID": "SGML", 9 | "SortAs": "SGML", 10 | "GlossTerm": "Standard Generalized Markup Language", 11 | "Acronym": "SGML", 12 | "Abbrev": "ISO 8879:1986", 13 | "GlossDef": { 14 | "para": "A meta-markup language, used to create markup languages such as DocBook.", 15 | "GlossSeeAlso": ["GML", "XML"] 16 | }, 17 | "GlossSee": "markup" 18 | } 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /third-party/jsonlab/examples/example3.json: -------------------------------------------------------------------------------- 1 | {"menu": { 2 | "id": "file", 3 | "value": "_&File", 4 | "popup": { 5 | "menuitem": [ 6 | {"value": "_&New", "onclick": "CreateNewDoc(\"'\\\"Untitled\\\"'\")"}, 7 | {"value": "_&Open", "onclick": "OpenDoc()"}, 8 | {"value": "_&Close", "onclick": "CloseDoc()"} 9 | ] 10 | } 11 | }} 12 | -------------------------------------------------------------------------------- /third-party/jsonlab/examples/example4.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "sample" : { 4 | "rho" : 1 5 | } 6 | }, 7 | { 8 | "sample" : { 9 | "rho" : 2 10 | } 11 | }, 12 | [ 13 | { 14 | "_ArrayType_" : "double", 15 | "_ArraySize_" : [1,2], 16 | "_ArrayData_" : [1,0] 17 | }, 18 | { 19 | "_ArrayType_" : "double", 20 | "_ArraySize_" : [1,2], 21 | "_ArrayData_" : [1,1] 22 | }, 23 | { 24 | "_ArrayType_" : "double", 25 | "_ArraySize_" : [1,2], 26 | "_ArrayData_" : [1,2] 27 | } 28 | ], 29 | [ 30 | "Paper", 31 | "Scissors", 32 | "Stone" 33 | ], 34 | ["a", "b\\", "c\"","d\\\"","e\"[","f\\\"[","g[\\","h[\\\""] 35 | ] 36 | -------------------------------------------------------------------------------- /third-party/jsonlab/examples/jsonlab_selftest.m: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Regression Test Unit of loadjson and savejson 3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 | 5 | for i=1:4 6 | fname=sprintf('example%d.json',i); 7 | if(exist(fname,'file')==0) break; end 8 | fprintf(1,'===============================================\n>> %s\n',fname); 9 | json=savejson('data',loadjson(fname)); 10 | fprintf(1,'%s\n',json); 11 | fprintf(1,'%s\n',savejson('data',loadjson(fname),'Compact',1)); 12 | data=loadjson(json); 13 | savejson('data',data,'selftest.json'); 14 | data=loadjson('selftest.json'); 15 | end 16 | 17 | for i=1:4 18 | fname=sprintf('example%d.json',i); 19 | if(exist(fname,'file')==0) break; end 20 | fprintf(1,'===============================================\n>> %s\n',fname); 21 | json=saveubjson('data',loadjson(fname)); 22 | fprintf(1,'%s\n',json); 23 | data=loadubjson(json); 24 | savejson('',data); 25 | saveubjson('data',data,'selftest.ubj'); 26 | data=loadubjson('selftest.ubj'); 27 | end 28 | -------------------------------------------------------------------------------- /third-party/jsonlab/examples/jsonlab_speedtest.m: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Benchmarking processing speed of savejson and loadjson 3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 | 5 | datalen=[1e3 1e4 1e5 1e6]; 6 | len=length(datalen); 7 | tsave=zeros(len,1); 8 | tload=zeros(len,1); 9 | for i=1:len 10 | tic; 11 | json=savejson('data',struct('d1',rand(datalen(i),3),'d2',rand(datalen(i),3)>0.5)); 12 | tsave(i)=toc; 13 | data=loadjson(json); 14 | tload(i)=toc-tsave(i); 15 | fprintf(1,'matrix size: %d\n',datalen(i)); 16 | end 17 | 18 | loglog(datalen,tsave,'o-',datalen,tload,'r*-'); 19 | legend('savejson runtime (s)','loadjson runtime (s)'); 20 | xlabel('array size'); 21 | ylabel('running time (s)'); 22 | -------------------------------------------------------------------------------- /third-party/jsonlab/jsonopt.m: -------------------------------------------------------------------------------- 1 | function val=jsonopt(key,default,varargin) 2 | % 3 | % val=jsonopt(key,default,optstruct) 4 | % 5 | % setting options based on a struct. The struct can be produced 6 | % by varargin2struct from a list of 'param','value' pairs 7 | % 8 | % authors:Qianqian Fang (fangq nmr.mgh.harvard.edu) 9 | % 10 | % $Id: loadjson.m 371 2012-06-20 12:43:06Z fangq $ 11 | % 12 | % input: 13 | % key: a string with which one look up a value from a struct 14 | % default: if the key does not exist, return default 15 | % optstruct: a struct where each sub-field is a key 16 | % 17 | % output: 18 | % val: if key exists, val=optstruct.key; otherwise val=default 19 | % 20 | % license: 21 | % BSD or GPL version 3, see LICENSE_{BSD,GPLv3}.txt files for details 22 | % 23 | % -- this function is part of jsonlab toolbox (http://iso2mesh.sf.net/cgi-bin/index.cgi?jsonlab) 24 | % 25 | 26 | val=default; 27 | if(nargin<=2) return; end 28 | opt=varargin{1}; 29 | if(isstruct(opt)) 30 | if(isfield(opt,key)) 31 | val=getfield(opt,key); 32 | elseif(isfield(opt,lower(key))) 33 | val=getfield(opt,lower(key)); 34 | end 35 | end 36 | -------------------------------------------------------------------------------- /third-party/jsonlab/mergestruct.m: -------------------------------------------------------------------------------- 1 | function s=mergestruct(s1,s2) 2 | % 3 | % s=mergestruct(s1,s2) 4 | % 5 | % merge two struct objects into one 6 | % 7 | % authors:Qianqian Fang (fangq nmr.mgh.harvard.edu) 8 | % date: 2012/12/22 9 | % 10 | % input: 11 | % s1,s2: a struct object, s1 and s2 can not be arrays 12 | % 13 | % output: 14 | % s: the merged struct object. fields in s1 and s2 will be combined in s. 15 | % 16 | % license: 17 | % BSD or GPL version 3, see LICENSE_{BSD,GPLv3}.txt files for details 18 | % 19 | % -- this function is part of jsonlab toolbox (http://iso2mesh.sf.net/cgi-bin/index.cgi?jsonlab) 20 | % 21 | 22 | if(~isstruct(s1) || ~isstruct(s2)) 23 | error('input parameters contain non-struct'); 24 | end 25 | if(length(s1)>1 || length(s2)>1) 26 | error('can not merge struct arrays'); 27 | end 28 | fn=fieldnames(s2); 29 | s=s1; 30 | for i=1:length(fn) 31 | s=setfield(s,fn{i},getfield(s2,fn{i})); 32 | end 33 | 34 | -------------------------------------------------------------------------------- /third-party/jsonlab/varargin2struct.m: -------------------------------------------------------------------------------- 1 | function opt=varargin2struct(varargin) 2 | % 3 | % opt=varargin2struct('param1',value1,'param2',value2,...) 4 | % or 5 | % opt=varargin2struct(...,optstruct,...) 6 | % 7 | % convert a series of input parameters into a structure 8 | % 9 | % authors:Qianqian Fang (fangq nmr.mgh.harvard.edu) 10 | % date: 2012/12/22 11 | % 12 | % input: 13 | % 'param', value: the input parameters should be pairs of a string and a value 14 | % optstruct: if a parameter is a struct, the fields will be merged to the output struct 15 | % 16 | % output: 17 | % opt: a struct where opt.param1=value1, opt.param2=value2 ... 18 | % 19 | % license: 20 | % BSD or GPL version 3, see LICENSE_{BSD,GPLv3}.txt files for details 21 | % 22 | % -- this function is part of jsonlab toolbox (http://iso2mesh.sf.net/cgi-bin/index.cgi?jsonlab) 23 | % 24 | 25 | len=length(varargin); 26 | opt=struct; 27 | if(len==0) return; end 28 | i=1; 29 | while(i<=len) 30 | if(isstruct(varargin{i})) 31 | opt=mergestruct(opt,varargin{i}); 32 | elseif(ischar(varargin{i}) && i 4 | // July 2015 5 | // ------------------------------------------------------------------------ 6 | 7 | #ifndef CLOCKWISESORT_HPP 8 | #define CLOCKWISESORT_HPP 9 | 10 | #include 11 | 12 | #include 13 | 14 | namespace PolyCont 15 | { 16 | bool is_clockwise(const Path& polig) 17 | { 18 | float total = 0.0; 19 | for(std::size_t ii=0; ii 0; 26 | } 27 | 28 | 29 | void clockwise_sort(ContContainer& all_conts) 30 | { 31 | /* Sort clockwise the outside ones and counterclockwise the holes */ 32 | for(std::size_t ii=0; ii 4 | // July 2015 5 | // ------------------------------------------------------------------------ 6 | #ifndef POLYCOMPARE_HPP 7 | #define POLYCOMPARE_HPP 8 | 9 | #include 10 | #include 11 | 12 | namespace PolyCont 13 | { 14 | double poly_intersection(const ContContainer& poly1, const ContContainer& poly2) 15 | { 16 | /* ************* TEMPORAL ************ 17 | * Conversion, we should remove junctions from container 18 | * or define it for our containers */ 19 | ClipperLib::Paths paths1(poly1.begin(),poly1.end()); 20 | ClipperLib::Paths paths2(poly2.begin(),poly2.end()); 21 | 22 | /* Get the intersection polygon */ 23 | ClipperLib::Clipper clpr; 24 | clpr.AddPaths(paths1, ClipperLib::ptSubject, true); 25 | clpr.AddPaths(paths2, ClipperLib::ptClip , true); 26 | ClipperLib::Paths solution; 27 | clpr.Execute(ClipperLib::ctIntersection, solution, ClipperLib::pftEvenOdd, ClipperLib::pftEvenOdd); 28 | 29 | /* Get its area */ 30 | double int_area = 0; 31 | for(std::size_t ii=0; ii 14 | % July 2015 15 | %------------------------------------------------------------------------ 16 | function pce = mask2pce( mask, tolerance) 17 | 18 | if ~exist('tolerance','var') 19 | tolerance = 3; 20 | end 21 | 22 | % Call the C++ implementation 23 | pce = mask2poly_mex(mask, tolerance); 24 | 25 | end 26 | 27 | -------------------------------------------------------------------------------- /third-party/polycont/matlab/pce2mask.m: -------------------------------------------------------------------------------- 1 | % mask = pce2mask( pce ) 2 | %------------------------------------------------------------------------ 3 | % Get the representation in terms of polygons of the contour of a mask. 4 | % PARAMS IN: 5 | % pce : Polygonal representation of the contour. 6 | % PARAMS OUT: 7 | % mask : Boolean matrix - foreground (true), background (false), 8 | % representing the mask of the shape we want to code. 9 | %------------------------------------------------------------------------ 10 | % Copyright (C) 11 | % Jordi Pont-Tuset 12 | % July 2015 13 | %------------------------------------------------------------------------ 14 | function mask = pce2mask( pce ) 15 | 16 | % Call the C++ implementation 17 | mask = poly2mask_mex(pce); 18 | 19 | end 20 | 21 | -------------------------------------------------------------------------------- /third-party/polycont/matlab/pce_area.m: -------------------------------------------------------------------------------- 1 | % area = pce_area( pce ) 2 | %------------------------------------------------------------------------ 3 | % Get the area of a polygon contour. 4 | % PARAMS IN: 5 | % pce : Polygonal representation of the contour. 6 | % PARAMS OUT: 7 | % area : Area of the polygon. 8 | %------------------------------------------------------------------------ 9 | % Copyright (C) 10 | % Jordi Pont-Tuset 11 | % July 2015 12 | %------------------------------------------------------------------------ 13 | function area = pce_area( pce ) 14 | % Call the C++ implementation 15 | area = poly_area_mex(pce); 16 | end 17 | 18 | -------------------------------------------------------------------------------- /third-party/polycont/matlab/pce_intersection.m: -------------------------------------------------------------------------------- 1 | % intersection = pce_intersection( pce1, pce2 ) 2 | %------------------------------------------------------------------------ 3 | % Get the intersection between two polygon contours. 4 | % PARAMS IN: 5 | % pce1, pce2 : Polygonal representations of the contours. 6 | % PARAMS OUT: 7 | % intersection : Intersection between the two polygons. 8 | %------------------------------------------------------------------------ 9 | % Copyright (C) 10 | % Jordi Pont-Tuset 11 | % July 2015 12 | %------------------------------------------------------------------------ 13 | function intersection = pce_intersection( pce1, pce2 ) 14 | % Call the C++ implementation 15 | intersection = poly_intersection_mex(pce1, pce2); 16 | end 17 | 18 | -------------------------------------------------------------------------------- /third-party/polycont/matlab/pce_jaccard.m: -------------------------------------------------------------------------------- 1 | % [jaccard, precision, recall] = pce_jaccard( pce1, pce2 ) 2 | %------------------------------------------------------------------------ 3 | % Get the jaccard index between two polygon contours. 4 | % PARAMS IN: 5 | % pce1, pce2 : Polygonal representations of the contours. 6 | % PARAMS OUT: 7 | % jaccard : Jaccard index between two polygon contours. 8 | %------------------------------------------------------------------------ 9 | % Copyright (C) 10 | % Jordi Pont-Tuset 11 | % July 2015 12 | %------------------------------------------------------------------------ 13 | function [jaccard, precision, recall] = pce_jaccard( pce1, pce2 ) 14 | % Get the areas 15 | area1 = pce_area(pce1); 16 | area2 = pce_area(pce2); 17 | 18 | % Get the intersection 19 | inters = pce_intersection(pce1, pce2); 20 | 21 | % Get the union 22 | union = area1+area2-inters; 23 | 24 | % Get the Jaccard 25 | if union==0 26 | jaccard = 1; 27 | precision = 1; 28 | recall = 1; 29 | else 30 | jaccard = inters/union; 31 | precision = inters/area1; 32 | recall = inters/area2; 33 | end 34 | end 35 | 36 | -------------------------------------------------------------------------------- /third-party/polycont/matlab/pce_read.m: -------------------------------------------------------------------------------- 1 | % pce = pce_read( filename ) 2 | %------------------------------------------------------------------------ 3 | % Get the area of a polygon contour. 4 | % PARAMS IN: 5 | % filename : File name to write the polygon 6 | % PARAMS OUT: 7 | % pce : Polygonal representation of the contour. 8 | %------------------------------------------------------------------------ 9 | % Copyright (C) 10 | % Jordi Pont-Tuset 11 | % July 2015 12 | %------------------------------------------------------------------------ 13 | function pce = pce_read( filename ) 14 | % Call the C++ implementation 15 | pce = poly_read_mex(filename); 16 | end 17 | 18 | -------------------------------------------------------------------------------- /third-party/polycont/matlab/pce_write.m: -------------------------------------------------------------------------------- 1 | % pce_write( pce, filename ) 2 | %------------------------------------------------------------------------ 3 | % Get the area of a polygon contour. 4 | % PARAMS IN: 5 | % pce : Polygonal representation of the contour. 6 | % filename : File name to write the polygon 7 | %------------------------------------------------------------------------ 8 | % Copyright (C) 9 | % Jordi Pont-Tuset 10 | % July 2015 11 | %------------------------------------------------------------------------ 12 | function pce_write( pce, filename ) 13 | % Call the C++ implementation 14 | poly_write_mex(pce, filename); 15 | end 16 | 17 | -------------------------------------------------------------------------------- /third-party/polycont/matlab/plot_pce.m: -------------------------------------------------------------------------------- 1 | % plot_pce( pce ) 2 | %------------------------------------------------------------------------ 3 | % Plot the polygon represented by poly 4 | % PARAMS IN: 5 | % pce : Polygonal representation of the contour. 6 | %------------------------------------------------------------------------ 7 | % Copyright (C) 8 | % Jordi Pont-Tuset 9 | % July 2015 10 | %------------------------------------------------------------------------ 11 | function plot_pce( pce ) 12 | 13 | % Sweep all 'pieces' 14 | for jj=1:length(pce.paths) 15 | % Plot holes in a different colour 16 | if pce.paths(jj).is_hole 17 | plot(pce.paths(jj).contour_coords(:,2)+0.5, pce.paths(jj).contour_coords(:,1)+0.5,'g-o') 18 | else 19 | plot(pce.paths(jj).contour_coords(:,2)+0.5, pce.paths(jj).contour_coords(:,1)+0.5,'r-o') 20 | end 21 | end 22 | 23 | end 24 | 25 | -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/mask2poly_mex.cpp: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------ 2 | // Copyright (C) 3 | // Disney Research, Zurich 4 | // 5 | // Jordi Pont-Tuset 6 | // June 2014 7 | // ------------------------------------------------------------------------ 8 | // mask2poly_mex(mask, border, simplify_tol) 9 | #include "mex.h" 10 | #include 11 | #include 12 | #include 13 | 14 | using namespace std; 15 | using namespace PolyCont; 16 | 17 | void mexFunction( int nlhs, mxArray *plhs[], 18 | int nrhs, const mxArray*prhs[] ) 19 | { 20 | /* Check number of input parameter */ 21 | if (nrhs==0) 22 | mexErrMsgTxt("There should be at least 1 input parameter"); 23 | else if (nrhs>3) 24 | mexErrMsgTxt("Maximum 3 input parameters"); 25 | 26 | /* Parameter controling the amount of simplifiction of the contour points */ 27 | double simplify_tol; 28 | if(nrhs<2) 29 | simplify_tol = 0; 30 | else 31 | simplify_tol = mxGetScalar(prhs[1]); 32 | 33 | /* Input Mask - Matrix of booleans */ 34 | Eigen::Map > 35 | mask((bool*)mxGetData(prhs[0]),mxGetM(prhs[0]),mxGetN(prhs[0])); 36 | 37 | /* Output contours */ 38 | ContContainer all_conts; 39 | 40 | 41 | /*-------------------------------------------*/ 42 | /* Call the actual function */ 43 | /*-------------------------------------------*/ 44 | mask2polycont(mask, all_conts, simplify_tol); 45 | 46 | 47 | /*-------------------------------------------*/ 48 | /* Output */ 49 | /*-------------------------------------------*/ 50 | cont_to_matlab(all_conts, plhs[0]); 51 | 52 | } 53 | 54 | -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/mask2poly_mex.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/polycont/matlab/private/mask2poly_mex.mexa64 -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/mask2poly_mex.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/polycont/matlab/private/mask2poly_mex.mexmaci64 -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/mask2poly_mex.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/polycont/matlab/private/mask2poly_mex.mexw64 -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly2mask_mex.cpp: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------ 2 | // Copyright (C) 3 | // Disney Research, Zurich 4 | // 5 | // Jordi Pont-Tuset 6 | // June 2014 7 | // ------------------------------------------------------------------------ 8 | // mask = poly2mask_mex(poly) 9 | #include "mex.h" 10 | #include 11 | #include 12 | 13 | using namespace std; 14 | using namespace PolyCont; 15 | 16 | void mexFunction( int nlhs, mxArray *plhs[], 17 | int nrhs, const mxArray*prhs[] ) 18 | { 19 | /* Check number of input parameter */ 20 | if (nrhs!=1) 21 | mexErrMsgTxt("There should be 1 input parameter"); 22 | 23 | /* From Matlab pointers to contour containers */ 24 | ContContainer poly = cont_from_matlab(prhs[0]); 25 | 26 | /* Call actual code */ 27 | MaskType mask; 28 | polycont2mask(poly, mask); 29 | 30 | /* Output Mask - Matrix of booleans */ 31 | plhs[0] = mxCreateLogicalMatrix(mask.rows(), mask.cols()); 32 | Eigen::Map > 33 | mask_map((bool*)mxGetData(plhs[0]),mask.rows(),mask.cols()); 34 | for(std::size_t ii=0; ii 4 | // July 2015 5 | // ------------------------------------------------------------------------ 6 | // area = poly_area_mex(poly); 7 | #include "mex.h" 8 | 9 | #include 10 | #include 11 | 12 | using namespace std; 13 | using namespace PolyCont; 14 | 15 | 16 | void mexFunction( int nlhs, mxArray *plhs[], 17 | int nrhs, const mxArray*prhs[] ) 18 | { 19 | /* Check number of input parameter */ 20 | if (nrhs!=1) 21 | mexErrMsgTxt("There should be 1 input only"); 22 | 23 | 24 | /* From Matlab pointers to contour containers */ 25 | ContContainer poly = cont_from_matlab(prhs[0]); 26 | 27 | /*-------------------------------------------*/ 28 | /* Get the area */ 29 | /*-------------------------------------------*/ 30 | double area = poly_area(poly); 31 | 32 | 33 | /*-------------------------------------------*/ 34 | /* Output */ 35 | /*-------------------------------------------*/ 36 | 37 | /* ---- Area ---- */ 38 | plhs[0] = mxCreateDoubleScalar(area); 39 | } 40 | 41 | -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly_area_mex.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/polycont/matlab/private/poly_area_mex.mexa64 -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly_area_mex.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/polycont/matlab/private/poly_area_mex.mexmaci64 -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly_area_mex.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/polycont/matlab/private/poly_area_mex.mexw64 -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly_intersection_mex.cpp: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------ 2 | // Copyright (C) 3 | // Jordi Pont-Tuset 4 | // July 2015 5 | // ------------------------------------------------------------------------ 6 | // intersection = poly_intersection_mex(poly1, poly2); 7 | #include "mex.h" 8 | 9 | #include 10 | #include 11 | 12 | using namespace std; 13 | using namespace PolyCont; 14 | 15 | 16 | void mexFunction( int nlhs, mxArray *plhs[], 17 | int nrhs, const mxArray*prhs[] ) 18 | { 19 | /* Check number of input parameter */ 20 | if (nrhs!=2) 21 | mexErrMsgTxt("There should be 2 inputs"); 22 | 23 | 24 | /* From Matlab pointers to contour containers */ 25 | ContContainer poly1 = cont_from_matlab(prhs[0]); 26 | ContContainer poly2 = cont_from_matlab(prhs[1]); 27 | 28 | /*-------------------------------------------*/ 29 | /* Intersect polygons */ 30 | /*-------------------------------------------*/ 31 | double intersection = poly_intersection(poly1, poly2); 32 | 33 | 34 | /*-------------------------------------------*/ 35 | /* Output */ 36 | /*-------------------------------------------*/ 37 | 38 | /* ---- Intersection ---- */ 39 | plhs[0] = mxCreateDoubleScalar(intersection); 40 | } 41 | 42 | -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly_intersection_mex.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/polycont/matlab/private/poly_intersection_mex.mexa64 -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly_intersection_mex.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/polycont/matlab/private/poly_intersection_mex.mexmaci64 -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly_intersection_mex.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/polycont/matlab/private/poly_intersection_mex.mexw64 -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly_read_mex.cpp: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------ 2 | // Copyright (C) 3 | // Disney Research, Zurich 4 | // 5 | // Jordi Pont-Tuset 6 | // June 2014 7 | // ------------------------------------------------------------------------ 8 | // mask2poly_mex(mask, border, simplify_tol) 9 | #include "mex.h" 10 | #include 11 | #include 12 | 13 | using namespace std; 14 | using namespace PolyCont; 15 | 16 | void mexFunction( int nlhs, mxArray *plhs[], 17 | int nrhs, const mxArray*prhs[] ) 18 | { 19 | /* Check number of input parameter */ 20 | if (nrhs!=1) 21 | mexErrMsgTxt("There should be 1 input parameter"); 22 | 23 | /* Filename */ 24 | std::string filename = mxArrayToString(prhs[0]); 25 | 26 | /* Call write code */ 27 | ContContainer poly; 28 | read_polycont(filename, poly); 29 | 30 | /* From Matlab pointers to contour containers */ 31 | cont_to_matlab(poly, plhs[0]); 32 | } 33 | 34 | -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly_read_mex.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/polycont/matlab/private/poly_read_mex.mexa64 -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly_read_mex.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/polycont/matlab/private/poly_read_mex.mexmaci64 -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly_read_mex.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/polycont/matlab/private/poly_read_mex.mexw64 -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly_write_mex.cpp: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------ 2 | // Copyright (C) 3 | // Disney Research, Zurich 4 | // 5 | // Jordi Pont-Tuset 6 | // June 2014 7 | // ------------------------------------------------------------------------ 8 | // mask2poly_mex(mask, border, simplify_tol) 9 | #include "mex.h" 10 | #include 11 | #include 12 | 13 | using namespace std; 14 | using namespace PolyCont; 15 | 16 | void mexFunction( int nlhs, mxArray *plhs[], 17 | int nrhs, const mxArray*prhs[] ) 18 | { 19 | /* Check number of input parameter */ 20 | if (nrhs!=2) 21 | mexErrMsgTxt("There should be 2 input parameter"); 22 | 23 | 24 | /* From Matlab pointers to contour containers */ 25 | ContContainer poly = cont_from_matlab(prhs[0]); 26 | 27 | /* Filename */ 28 | std::string filename = mxArrayToString(prhs[1]); 29 | 30 | /* Call write code */ 31 | write_polycont(filename, poly); 32 | 33 | } 34 | 35 | -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly_write_mex.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/polycont/matlab/private/poly_write_mex.mexa64 -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly_write_mex.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/polycont/matlab/private/poly_write_mex.mexmaci64 -------------------------------------------------------------------------------- /third-party/polycont/matlab/private/poly_write_mex.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davisvideochallenge/davis-matlab/ceb40bc828dd4d339915d972ffcd895669b7c62b/third-party/polycont/matlab/private/poly_write_mex.mexw64 -------------------------------------------------------------------------------- /third-party/polycont/matlab/tests/test_io.pce: -------------------------------------------------------------------------------- 1 | 600,400/99,99,500,99,500,300,99,300,99,99/49,49,49,350,550,350,550,49,49,49 -------------------------------------------------------------------------------- /third-party/polycont/matlab/tests/test_mask2pce_visual.m: -------------------------------------------------------------------------------- 1 | 2 | %% Iterative holes 3 | mask = false(600); 4 | mask(100:199,100:199) = true; 5 | mask(200:400,200:400) = true; 6 | mask(225:375,225:375) = false; 7 | mask(250:350,250:350) = true; 8 | mask(275:325,275:325) = false; 9 | mask = [false(size(mask,1),100) mask]; % Uncenter to debug 10 | 11 | % Get the polygon 12 | pce = mask2pce(mask,3); 13 | 14 | % Display 15 | figure 16 | imshow(mask) 17 | hold on 18 | plot_pce(pce); 19 | 20 | 21 | %% Junctions that lead to non-closed curves 22 | mask = false(600); 23 | mask(100:199,100:199) = true; 24 | mask(200:400,200:400) = true; 25 | mask(401:500,401:500) = true; 26 | mask(250:350,250:350) = false; 27 | mask = [false(size(mask,1),100) mask]; % Uncenter to debug 28 | 29 | % Get the polygon 30 | pce = mask2pce(mask,3); 31 | 32 | % Display 33 | figure 34 | imshow(mask) 35 | hold on 36 | plot_pce(pce); 37 | 38 | 39 | %% Strange configuration of junctions 40 | % Please observe that there are two possibilities for the 41 | % interpretation of holes in this case. Both are correct 42 | % in the sense of Jordan curves 43 | mask = false(600); 44 | mask(75:425,100:350) = true; 45 | mask(125:175,300:500) = true; 46 | mask(125:175,200:350) = false; 47 | mask(225:275,300:500) = true; 48 | mask(225:275,200:350) = false; 49 | mask(325:375,300:500) = true; 50 | mask(325:375,200:350) = false; 51 | 52 | % Get the polygon 53 | pce = mask2pce(mask,3); 54 | 55 | % Display 56 | figure 57 | imshow(mask) 58 | hold on 59 | plot_pce(pce); 60 | 61 | 62 | -------------------------------------------------------------------------------- /third-party/polycont/matlab/tests/test_pce_compare.m: -------------------------------------------------------------------------------- 1 | 2 | %% Two simple masks 3 | % Create mask 1 4 | mask1 = false(600); 5 | mask1(100:400,100:400) = true; 6 | mask1 = [false(size(mask1,1),100) mask1]; % Uncenter to debug 7 | 8 | % Create mask 2 9 | mask2 = false(600); 10 | mask2(200:500,200:500) = true; 11 | mask2 = [false(size(mask2,1),100) mask2]; % Uncenter to debug 12 | mask2(50:150,50:150) = true; % Add a second 'blob' 13 | 14 | % Show masks 15 | % imshow(mask1+mask2,[]); 16 | 17 | % Get polygons 18 | pce1 = mask2pce(mask1,3); 19 | pce2 = mask2pce(mask2,3); 20 | 21 | % Get the intersection between polygons and area 22 | int_pces = pce_intersection(pce1, pce2); 23 | area_pces = pce_area(pce1); 24 | 25 | % Do the same between masks (we know this works) 26 | int_masks = sum(mask1(:).*mask2(:)); 27 | area_masks = sum(mask1(:)); 28 | 29 | % Are they the same? 30 | assert(int_pces==int_masks); 31 | assert(area_pces==area_masks); 32 | 33 | %% Check that holes work 34 | mask1 = false(600,400); 35 | mask1( 50:550, 50:350) = true; 36 | mask1(100:500,100:300) = false; 37 | 38 | mask2 = false(600,400); 39 | mask2(100:500,100:300) = true; 40 | 41 | % Get polygons 42 | pce1 = mask2pce(mask1,3); 43 | pce2 = mask2pce(mask2,3); 44 | 45 | % Check that intersection is zero 46 | assert(pce_intersection(pce1, pce2) == 0); 47 | 48 | %% A single pixel 49 | mask1 = false(600,400); 50 | mask1(10,10) = true; 51 | pce1 = mask2pce(mask1,3); 52 | assert(isempty(pce1.paths)) 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /third-party/polycont/matlab/tests/test_pce_io.m: -------------------------------------------------------------------------------- 1 | 2 | 3 | %% A simple mask with two blobs 4 | 5 | % Create mask 6 | mask0 = false(600,500); 7 | mask0(100:400,100:200) = true; 8 | mask0(100:400,300:350) = true; 9 | 10 | % Get polygon 11 | pce1 = mask2pce(mask0,3); 12 | 13 | % Get the mask back 14 | mask1 = pce2mask(pce1); 15 | 16 | % Write to file 17 | pce_write(pce1, 'matlab/tests/test_io.pce'); 18 | 19 | % Read polygon 20 | pce2 = pce_read('matlab/tests/test_io.pce'); 21 | 22 | % Transform to mask 23 | mask2 = pce2mask(pce2); 24 | 25 | % Check they are the same 26 | assert(isequal(mask0, mask1)) 27 | assert(isequal(mask1, mask2)) 28 | assert(isequal(pce1, pce2)) 29 | 30 | 31 | 32 | %% A mask with a hole 33 | 34 | % Create mask 35 | mask0 = false(600,400); 36 | mask0( 50:550, 50:350) = true; 37 | mask0(100:500,100:300) = false; 38 | 39 | % Get polygon 40 | pce1 = mask2pce(mask0,3); 41 | 42 | % Get the mask back 43 | mask1 = pce2mask(pce1); 44 | 45 | % Write to file 46 | pce_write(pce1, 'matlab/tests/test_io.pce'); 47 | 48 | % Read polygon 49 | pce2 = pce_read('matlab/tests/test_io.pce'); 50 | 51 | % Transform to mask 52 | mask2 = pce2mask(pce2); 53 | 54 | % Check they are the same 55 | assert(isequal(mask0, mask1)) 56 | assert(isequal(mask1, mask2)) 57 | assert(isequal(pce1, pce2)) 58 | 59 | 60 | --------------------------------------------------------------------------------