From 25736d65395db2302248626b8b0a5ae151b0e37f Mon Sep 17 00:00:00 2001 From: Dennis Madsen Date: Thu, 28 Apr 2022 08:52:53 +0200 Subject: [PATCH] Added implicits for parallel loops, Scala version adjusted, organization corrected, file import cleanup (#3) --- build.sbt | 4 ++-- .../scala/api/GeneralRegistrationState.scala | 2 +- src/main/scala/api/GingrAlgorithm.scala | 8 +++---- .../scala/api/ModelFittingParameters.scala | 4 ++-- src/main/scala/api/RegistrationState.scala | 5 ++--- src/main/scala/api/gpmm/GPMMHelper.scala | 14 +++++-------- src/main/scala/api/gpmm/KernelHelper.scala | 4 ++-- src/main/scala/api/gpmm/MatrixHelper.scala | 2 +- .../scala/api/helper/PosteriorHelper.scala | 2 +- .../scala/api/registration/config/CPD.scala | 13 ++++++------ .../scala/api/registration/config/ICP.scala | 7 ++----- .../api/registration/config/Template.scala | 2 +- .../utils/ClosestPointRegistrator.scala | 4 ++-- .../api/registration/utils/GPMMHelper.scala | 10 +++------ .../utils/PointSequenceConverter.scala | 2 ++ .../utils/TransformationHelper.scala | 2 +- src/main/scala/api/sampling/Evaluator.scala | 2 +- src/main/scala/api/sampling/Generator.scala | 6 +++--- .../IndependentPointDistanceEvaluator.scala | 6 +++--- .../sampling/evaluators/ModelEvaluator.scala | 2 +- .../GeneratorWrapperDeterministic.scala | 1 - .../GeneratorWrapperStochastic.scala | 1 - .../generators/RandomPoseUpdateProposal.scala | 1 - .../RandomShapeUpdateProposal.scala | 1 - .../loggers/EmptyChainStateLogger.scala | 2 +- .../sampling/loggers/JSONStateLogger.scala | 21 +++++++------------ src/main/scala/apps/DemoDatasetLoader.scala | 8 +++---- .../scala/apps/registration/DemoCPD.scala | 8 +++---- .../registration/DemoConfigurations.scala | 4 ++-- .../scala/apps/registration/DemoICP.scala | 3 --- .../apps/registration/DemoLandmarks.scala | 1 - .../registration/DemoMultiResolution.scala | 2 +- .../DemoPosteriorVisualizationFemur.scala | 1 - src/main/scala/apps/registration/DemoUI.scala | 4 ---- .../apps/registration/SimpleRegistrator.scala | 2 +- .../other/algorithms/cpd/AffineCPD.scala | 2 +- .../scala/other/algorithms/cpd/BCPD.scala | 2 +- .../other/algorithms/cpd/NonRigidCPD.scala | 2 +- .../scala/other/algorithms/cpd/RigidCPD.scala | 2 +- .../icp/NonRigidOptimalStepICP.scala | 2 +- .../scala/other/utils/PoseRegistrator.scala | 2 +- 41 files changed, 71 insertions(+), 102 deletions(-) diff --git a/build.sbt b/build.sbt index d9b088c..90efd56 100644 --- a/build.sbt +++ b/build.sbt @@ -1,12 +1,12 @@ import sbt.Resolver -organization := "anonymous" +organization := "ch.unibas.cs.gravis" name := "GiNGR" version := "0.1" -scalaVersion := "2.12.8" +scalaVersion := "2.13.8" scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8") diff --git a/src/main/scala/api/GeneralRegistrationState.scala b/src/main/scala/api/GeneralRegistrationState.scala index 38ead14..9ebe4c8 100644 --- a/src/main/scala/api/GeneralRegistrationState.scala +++ b/src/main/scala/api/GeneralRegistrationState.scala @@ -19,7 +19,7 @@ package api import breeze.linalg.{DenseMatrix, DenseVector} import scalismo.common.PointId -import scalismo.geometry.{_3D, EuclideanVector, Landmark, Point} +import scalismo.geometry.{EuclideanVector, Landmark, Point, _3D} import scalismo.mesh.TriangleMesh import scalismo.statisticalmodel.{MultivariateNormalDistribution, PointDistributionModel} import scalismo.transformations._ diff --git a/src/main/scala/api/GingrAlgorithm.scala b/src/main/scala/api/GingrAlgorithm.scala index e9ba720..b5600e3 100644 --- a/src/main/scala/api/GingrAlgorithm.scala +++ b/src/main/scala/api/GingrAlgorithm.scala @@ -17,17 +17,17 @@ package api -import api.sampling.{AcceptAll, Evaluator, Generator} import api.sampling.evaluators.EvaluatorWrapper -import api.sampling.loggers.{BestAndCurrentSampleLogger, EmptyAcceptRejectLogger, EmptyChainStateLogger} import api.sampling.generators.{GeneratorWrapperDeterministic, GeneratorWrapperStochastic} +import api.sampling.loggers.{BestAndCurrentSampleLogger, EmptyAcceptRejectLogger, EmptyChainStateLogger} +import api.sampling.{AcceptAll, Evaluator, Generator} import scalismo.common.PointId -import scalismo.geometry.{_3D, Point} +import scalismo.geometry.{Point, _3D} import scalismo.mesh.TriangleMesh import scalismo.registration.LandmarkRegistration import scalismo.sampling.algorithms.MetropolisHastings -import scalismo.sampling.loggers.{AcceptRejectLogger, ChainStateLogger, ChainStateLoggerContainer} import scalismo.sampling.loggers.ChainStateLogger.implicits._ +import scalismo.sampling.loggers.{AcceptRejectLogger, ChainStateLogger, ChainStateLoggerContainer} import scalismo.sampling.proposals.MixtureProposal import scalismo.sampling.proposals.MixtureProposal.implicits._ import scalismo.sampling.{ProposalGenerator, TransitionProbability} diff --git a/src/main/scala/api/ModelFittingParameters.scala b/src/main/scala/api/ModelFittingParameters.scala index d797864..fee64de 100644 --- a/src/main/scala/api/ModelFittingParameters.scala +++ b/src/main/scala/api/ModelFittingParameters.scala @@ -18,10 +18,10 @@ package api import breeze.linalg.DenseVector -import scalismo.geometry.{_3D, EuclideanVector, Point} +import scalismo.geometry.{EuclideanVector, Point, _3D} import scalismo.mesh.TriangleMesh import scalismo.statisticalmodel.PointDistributionModel -import scalismo.transformations.{Rotation, Scaling, Scaling3D, Translation, TranslationAfterRotation, TranslationAfterScalingAfterRotation} +import scalismo.transformations._ case class ScaleParameter(s: Double) { def parameters: DenseVector[Double] = DenseVector(s) diff --git a/src/main/scala/api/RegistrationState.scala b/src/main/scala/api/RegistrationState.scala index 13d3ffa..ced3a16 100644 --- a/src/main/scala/api/RegistrationState.scala +++ b/src/main/scala/api/RegistrationState.scala @@ -17,11 +17,10 @@ package api -import breeze.linalg.DenseVector -import scalismo.geometry.{_3D, EuclideanVector, EuclideanVector3D, Landmark, Point} +import scalismo.geometry.{EuclideanVector, Landmark, _3D} import scalismo.mesh.TriangleMesh import scalismo.statisticalmodel.PointDistributionModel -import scalismo.transformations.{Rotation, RotationSpace3D, Translation, TranslationAfterRotation} +import scalismo.transformations.Rotation trait RegistrationState[T] { def model(): PointDistributionModel[_3D, TriangleMesh] // Prior statistical mesh model diff --git a/src/main/scala/api/gpmm/GPMMHelper.scala b/src/main/scala/api/gpmm/GPMMHelper.scala index 2e3bf2e..6988b2f 100644 --- a/src/main/scala/api/gpmm/GPMMHelper.scala +++ b/src/main/scala/api/gpmm/GPMMHelper.scala @@ -17,16 +17,14 @@ package api.gpmm -import breeze.linalg.{diag, sum, trace, DenseMatrix} +import breeze.linalg.sum import scalismo.common.DiscreteField.ScalarMeshField -import scalismo.common.interpolation.{NearestNeighborInterpolator, TriangleMeshInterpolator3D} -import scalismo.common.{DiscreteDomain, PointId, PointSet, ScalarMeshField, UnstructuredPoints, UnstructuredPointsDomain} -import scalismo.geometry.{_1D, _2D, _3D, EuclideanVector, NDSpace} +import scalismo.common._ +import scalismo.common.interpolation.NearestNeighborInterpolator +import scalismo.geometry.{EuclideanVector, _1D, _2D, _3D} import scalismo.kernels.{DiagonalKernel, GaussianKernel, MatrixValuedPDKernel} import scalismo.mesh.TriangleMesh -import scalismo.numerics.PivotedCholesky -import scalismo.numerics.PivotedCholesky.NumberOfEigenfunctions -import scalismo.statisticalmodel.{DiscreteLowRankGaussianProcess, GaussianProcess, LowRankGaussianProcess, PointDistributionModel} +import scalismo.statisticalmodel.{GaussianProcess, LowRankGaussianProcess, PointDistributionModel} trait GPMM[D, DDomain[D] <: DiscreteDomain[D]] { def construct(reference: DDomain[D], kernel: MatrixValuedPDKernel[D], relativeTolerance: Double = 0.01): PointDistributionModel[D, DDomain] @@ -133,12 +131,10 @@ case class GPMMTriangleMesh3D(reference: TriangleMesh[_3D], relativeTolerance: D val refPoints = reference.pointSet val psHelper = PointSetHelper[_3D, TriangleMesh](reference) val maxDist = psHelper.maximumPointDistance(refPoints) -// val minDist = psHelper.minimumPointDistance(refPoints) GaussianMixture( Seq( GaussianKernelParameters(maxDist / 4.0, maxDist / 8.0), GaussianKernelParameters(maxDist / 8.0, maxDist / 16.0) -// GaussianKernelParameters(maxDist/16.0, maxDist/32.0), )) } diff --git a/src/main/scala/api/gpmm/KernelHelper.scala b/src/main/scala/api/gpmm/KernelHelper.scala index 2e49bd0..be00b0c 100644 --- a/src/main/scala/api/gpmm/KernelHelper.scala +++ b/src/main/scala/api/gpmm/KernelHelper.scala @@ -17,9 +17,9 @@ package api.gpmm -import breeze.linalg.{sum, DenseMatrix, DenseVector} +import breeze.linalg.DenseMatrix import scalismo.common.EuclideanSpace -import scalismo.geometry.{_3D, Point} +import scalismo.geometry.{Point, _3D} import scalismo.kernels.{DiagonalKernel, MatrixValuedPDKernel, PDKernel} import scalismo.mesh.TriangleMesh diff --git a/src/main/scala/api/gpmm/MatrixHelper.scala b/src/main/scala/api/gpmm/MatrixHelper.scala index 131b0ca..29b1b9d 100644 --- a/src/main/scala/api/gpmm/MatrixHelper.scala +++ b/src/main/scala/api/gpmm/MatrixHelper.scala @@ -17,7 +17,7 @@ package api.gpmm -import breeze.linalg.{diag, svd, DenseMatrix} +import breeze.linalg.{DenseMatrix, diag, svd} object MatrixHelper { def pinv(m: DenseMatrix[Double], precision: Double = 0.00001): DenseMatrix[Double] = { diff --git a/src/main/scala/api/helper/PosteriorHelper.scala b/src/main/scala/api/helper/PosteriorHelper.scala index 7d3ffb2..70cad08 100644 --- a/src/main/scala/api/helper/PosteriorHelper.scala +++ b/src/main/scala/api/helper/PosteriorHelper.scala @@ -21,7 +21,7 @@ import breeze.linalg.{DenseMatrix, DenseVector, trace} import scalismo.common.DiscreteField.ScalarMeshField import scalismo.common.ScalarMeshField import scalismo.geometry._3D -import scalismo.mesh.{TriangleMesh, TriangleMesh3D} +import scalismo.mesh.TriangleMesh object PosteriorHelper { private val sampleDim = 3 diff --git a/src/main/scala/api/registration/config/CPD.scala b/src/main/scala/api/registration/config/CPD.scala index 76f24d9..0c1c826 100644 --- a/src/main/scala/api/registration/config/CPD.scala +++ b/src/main/scala/api/registration/config/CPD.scala @@ -17,17 +17,16 @@ package api.registration.config -import java.io.File - import api.registration.utils.PointSequenceConverter -import api.GingrAlgorithm -import api.{CorrespondencePairs, GeneralRegistrationState, GingrConfig, GingrRegistrationState} -import breeze.linalg.{sum, tile, Axis, DenseMatrix, DenseVector} -import scalismo.common.{DiscreteField, DiscreteField3D, PointId, UnstructuredPointsDomain} +import api._ +import breeze.linalg.{Axis, DenseMatrix, DenseVector, sum, tile} +import scalismo.common.PointId import scalismo.geometry.Point.Point3DVectorizer -import scalismo.geometry.{_3D, EuclideanVector, Point} +import scalismo.geometry.{Point, _3D} import scalismo.statisticalmodel.MultivariateNormalDistribution +import scala.collection.parallel.CollectionConverters.ImmutableSeqIsParallelizable + object CPDCorrespondence { val vectorizer: Point.Point3DVectorizer.type = Point3DVectorizer diff --git a/src/main/scala/api/registration/config/ICP.scala b/src/main/scala/api/registration/config/ICP.scala index 315cd2e..3604d45 100644 --- a/src/main/scala/api/registration/config/ICP.scala +++ b/src/main/scala/api/registration/config/ICP.scala @@ -17,13 +17,10 @@ package api.registration.config -import java.io.File - -import api.registration.utils.NonRigidClosestPointRegistrator.ClosestPointTriangleMesh3D import api._ +import api.registration.utils.NonRigidClosestPointRegistrator.ClosestPointTriangleMesh3D import breeze.linalg.{DenseMatrix, DenseVector} -import scalismo.common.{DiscreteField, DiscreteField3D, PointId, UnstructuredPointsDomain} -import scalismo.geometry.{_3D, EuclideanVector} +import scalismo.common.PointId import scalismo.statisticalmodel.MultivariateNormalDistribution object ICPCorrespondence { diff --git a/src/main/scala/api/registration/config/Template.scala b/src/main/scala/api/registration/config/Template.scala index d0e407d..73fdf63 100644 --- a/src/main/scala/api/registration/config/Template.scala +++ b/src/main/scala/api/registration/config/Template.scala @@ -17,7 +17,7 @@ package api.registration.config -import api.{CorrespondencePairs, GeneralRegistrationState, GingrAlgorithm, GingrConfig, GingrRegistrationState} +import api._ import breeze.linalg.{DenseMatrix, DenseVector} import scalismo.common.PointId import scalismo.statisticalmodel.MultivariateNormalDistribution diff --git a/src/main/scala/api/registration/utils/ClosestPointRegistrator.scala b/src/main/scala/api/registration/utils/ClosestPointRegistrator.scala index 9775a50..87966d9 100644 --- a/src/main/scala/api/registration/utils/ClosestPointRegistrator.scala +++ b/src/main/scala/api/registration/utils/ClosestPointRegistrator.scala @@ -17,8 +17,8 @@ package api.registration.utils -import scalismo.common.{DiscreteDomain, PointId, UnstructuredPoints, UnstructuredPointsDomain} -import scalismo.geometry.{_1D, _2D, _3D, EuclideanVector, Point} +import scalismo.common.{DiscreteDomain, PointId, UnstructuredPointsDomain} +import scalismo.geometry._ import scalismo.mesh.TriangleMesh trait ClosestPointRegistrator[D, DDomain[D] <: DiscreteDomain[D]] { diff --git a/src/main/scala/api/registration/utils/GPMMHelper.scala b/src/main/scala/api/registration/utils/GPMMHelper.scala index 2c8dfe2..8691e1c 100644 --- a/src/main/scala/api/registration/utils/GPMMHelper.scala +++ b/src/main/scala/api/registration/utils/GPMMHelper.scala @@ -17,16 +17,12 @@ package api.registration.utils -import java.io.File - +import scalismo.common.UnstructuredPoints import scalismo.common.interpolation.TriangleMeshInterpolator3D -import scalismo.common.{EuclideanSpace, Field, UnstructuredPoints} -import scalismo.geometry.{EuclideanVector, Point, _3D} -import scalismo.io.MeshIO +import scalismo.geometry.{EuclideanVector, _3D} import scalismo.kernels.{DiagonalKernel, GaussianKernel} import scalismo.mesh.TriangleMesh import scalismo.statisticalmodel.{GaussianProcess, LowRankGaussianProcess, PointDistributionModel} -import scalismo.ui.api.ScalismoUI object GPMMHelper { // Todo: use implicit to build any kind of model based on the pointSet @@ -73,4 +69,4 @@ object GPMMHelper { // val gpmm = GPMMHelper.automaticGPMMfromTemplate(template) // val ui = ScalismoUI() // ui.show(gpmm, "model") -//} \ No newline at end of file +//} diff --git a/src/main/scala/api/registration/utils/PointSequenceConverter.scala b/src/main/scala/api/registration/utils/PointSequenceConverter.scala index 2b20ab4..7603e47 100644 --- a/src/main/scala/api/registration/utils/PointSequenceConverter.scala +++ b/src/main/scala/api/registration/utils/PointSequenceConverter.scala @@ -22,6 +22,8 @@ import scalismo.common.{PointId, Vectorizer} import scalismo.geometry.Point.{Point1DVectorizer, Point2DVectorizer, Point3DVectorizer} import scalismo.geometry._ +import scala.collection.parallel.CollectionConverters.ImmutableSeqIsParallelizable + trait PointSequenceConverter[D] { def toPointSequence(m: DenseMatrix[Double])(implicit vectorizer: Vectorizer[Point[D]]): Seq[Point[D]] def toPointSequence(v: DenseVector[Double])(implicit vectorizer: Vectorizer[Point[D]]): Seq[Point[D]] diff --git a/src/main/scala/api/registration/utils/TransformationHelper.scala b/src/main/scala/api/registration/utils/TransformationHelper.scala index d0d5d0e..7a00093 100644 --- a/src/main/scala/api/registration/utils/TransformationHelper.scala +++ b/src/main/scala/api/registration/utils/TransformationHelper.scala @@ -18,7 +18,7 @@ package api.registration.utils import breeze.linalg.DenseMatrix -import scalismo.geometry.{_2D, _3D, Point, SquareMatrix} +import scalismo.geometry.{Point, SquareMatrix, _2D, _3D} import scalismo.registration.LandmarkRegistration import scalismo.transformations._ diff --git a/src/main/scala/api/sampling/Evaluator.scala b/src/main/scala/api/sampling/Evaluator.scala index dc658da..71da6dc 100644 --- a/src/main/scala/api/sampling/Evaluator.scala +++ b/src/main/scala/api/sampling/Evaluator.scala @@ -18,7 +18,7 @@ package api.sampling import api.GingrRegistrationState -import api.sampling.evaluators.{AcceptAllEvaluator, EvaluationMode, IndependentPointDistanceEvaluator, ModelEvaluator, ModelToTargetEvaluation} +import api.sampling.evaluators._ import scalismo.sampling.DistributionEvaluator import scalismo.sampling.evaluators.ProductEvaluator diff --git a/src/main/scala/api/sampling/Generator.scala b/src/main/scala/api/sampling/Generator.scala index 7071cee..8bf6efd 100644 --- a/src/main/scala/api/sampling/Generator.scala +++ b/src/main/scala/api/sampling/Generator.scala @@ -18,11 +18,11 @@ package api.sampling import api.GingrRegistrationState -import api.sampling.generators.{GaussianAxisRotationProposal, GaussianAxisTranslationProposal, PitchAxis, RandomShapeUpdateProposal, RollAxis, YawAxis} -import scalismo.sampling.{ProposalGenerator, TransitionProbability} +import api.sampling.generators._ import scalismo.sampling.proposals.MixtureProposal -import scalismo.utils.Random import scalismo.sampling.proposals.MixtureProposal.implicits._ +import scalismo.sampling.{ProposalGenerator, TransitionProbability} +import scalismo.utils.Random class Generator[State <: GingrRegistrationState[State]](implicit rnd: Random) { diff --git a/src/main/scala/api/sampling/evaluators/IndependentPointDistanceEvaluator.scala b/src/main/scala/api/sampling/evaluators/IndependentPointDistanceEvaluator.scala index 18ac761..671559f 100644 --- a/src/main/scala/api/sampling/evaluators/IndependentPointDistanceEvaluator.scala +++ b/src/main/scala/api/sampling/evaluators/IndependentPointDistanceEvaluator.scala @@ -19,9 +19,9 @@ package api.sampling.evaluators import api.GingrRegistrationState import breeze.stats.distributions.ContinuousDistr -import scalismo.common.{DomainWarp, PointId} -import scalismo.geometry.{_3D, Point} -import scalismo.mesh.{TriangleMesh, TriangleMesh3D} +import scalismo.common.PointId +import scalismo.geometry.{Point, _3D} +import scalismo.mesh.TriangleMesh3D import scalismo.sampling.DistributionEvaluator trait EvaluationMode diff --git a/src/main/scala/api/sampling/evaluators/ModelEvaluator.scala b/src/main/scala/api/sampling/evaluators/ModelEvaluator.scala index 38c83bb..d4b5075 100644 --- a/src/main/scala/api/sampling/evaluators/ModelEvaluator.scala +++ b/src/main/scala/api/sampling/evaluators/ModelEvaluator.scala @@ -18,7 +18,7 @@ package api.sampling.evaluators import api.GingrRegistrationState -import breeze.linalg.{diag, DenseVector} +import breeze.linalg.{DenseVector, diag} import scalismo.sampling.DistributionEvaluator import scalismo.statisticalmodel.MultivariateNormalDistribution diff --git a/src/main/scala/api/sampling/generators/GeneratorWrapperDeterministic.scala b/src/main/scala/api/sampling/generators/GeneratorWrapperDeterministic.scala index e55021c..27892e7 100644 --- a/src/main/scala/api/sampling/generators/GeneratorWrapperDeterministic.scala +++ b/src/main/scala/api/sampling/generators/GeneratorWrapperDeterministic.scala @@ -18,7 +18,6 @@ package api.sampling.generators import api.GingrRegistrationState -import scalismo.sampling.{ProposalGenerator, TransitionProbability} import scalismo.utils.Random case class GeneratorWrapperDeterministic[State <: GingrRegistrationState[State]](update: (State, Boolean) => State, generatedBy: String = "Deterministic")(implicit rnd: Random) diff --git a/src/main/scala/api/sampling/generators/GeneratorWrapperStochastic.scala b/src/main/scala/api/sampling/generators/GeneratorWrapperStochastic.scala index f68a7d5..4f541ad 100644 --- a/src/main/scala/api/sampling/generators/GeneratorWrapperStochastic.scala +++ b/src/main/scala/api/sampling/generators/GeneratorWrapperStochastic.scala @@ -20,7 +20,6 @@ package api.sampling.generators import api.GingrRegistrationState import scalismo.geometry._3D import scalismo.mesh.TriangleMesh -import scalismo.sampling.{ProposalGenerator, TransitionProbability} import scalismo.statisticalmodel.PointDistributionModel import scalismo.utils.{Memoize, Random} diff --git a/src/main/scala/api/sampling/generators/RandomPoseUpdateProposal.scala b/src/main/scala/api/sampling/generators/RandomPoseUpdateProposal.scala index 4cd6d97..0f31f07 100644 --- a/src/main/scala/api/sampling/generators/RandomPoseUpdateProposal.scala +++ b/src/main/scala/api/sampling/generators/RandomPoseUpdateProposal.scala @@ -18,7 +18,6 @@ package api.sampling.generators import api.{EulerRotation, GingrRegistrationState} -import scalismo.sampling.{ProposalGenerator, TransitionProbability} sealed trait RotationAxis diff --git a/src/main/scala/api/sampling/generators/RandomShapeUpdateProposal.scala b/src/main/scala/api/sampling/generators/RandomShapeUpdateProposal.scala index 1d32c44..debd8a1 100644 --- a/src/main/scala/api/sampling/generators/RandomShapeUpdateProposal.scala +++ b/src/main/scala/api/sampling/generators/RandomShapeUpdateProposal.scala @@ -18,7 +18,6 @@ package api.sampling.generators import api.{GingrRegistrationState, ShapeParameters} -import scalismo.sampling.{ProposalGenerator, TransitionProbability} import scalismo.utils.Random case class RandomShapeUpdateProposal[State <: GingrRegistrationState[State]](stdev: Double, generatedBy: String = "RandomShapeUpdateProposal")(implicit random: Random) diff --git a/src/main/scala/api/sampling/loggers/EmptyChainStateLogger.scala b/src/main/scala/api/sampling/loggers/EmptyChainStateLogger.scala index aae1e73..92959d8 100644 --- a/src/main/scala/api/sampling/loggers/EmptyChainStateLogger.scala +++ b/src/main/scala/api/sampling/loggers/EmptyChainStateLogger.scala @@ -18,8 +18,8 @@ package api.sampling.loggers import api.GingrRegistrationState -import scalismo.sampling.{DistributionEvaluator, ProposalGenerator} import scalismo.sampling.loggers.{AcceptRejectLogger, ChainStateLogger} +import scalismo.sampling.{DistributionEvaluator, ProposalGenerator} case class EmptyChainStateLogger[State <: GingrRegistrationState[State]]() extends ChainStateLogger[State] { override def logState(sample: State): Unit = {} diff --git a/src/main/scala/api/sampling/loggers/JSONStateLogger.scala b/src/main/scala/api/sampling/loggers/JSONStateLogger.scala index 8ff1095..366a861 100644 --- a/src/main/scala/api/sampling/loggers/JSONStateLogger.scala +++ b/src/main/scala/api/sampling/loggers/JSONStateLogger.scala @@ -17,23 +17,18 @@ package api.sampling.loggers -import api.{EulerAngles, EulerRotation, GeneralRegistrationState, GingrRegistrationState, ModelFittingParameters, PoseParameters, ScaleParameter, ShapeParameters} -import spray.json.DefaultJsonProtocol.jsonFormat10 -import spray.json.RootJsonFormat -import spray.json.DefaultJsonProtocol._ -import spray.json._ -import scalismo.sampling.{DistributionEvaluator, ProposalGenerator} +import api._ +import api.sampling.Evaluator +import breeze.linalg.DenseVector +import scalismo.geometry.{EuclideanVector, Point} import scalismo.sampling.loggers.AcceptRejectLogger +import scalismo.sampling.{DistributionEvaluator, ProposalGenerator} +import spray.json.DefaultJsonProtocol._ +import spray.json.{RootJsonFormat, _} -import java.io.{BufferedWriter, File, FileOutputStream, IOException, OutputStreamWriter} +import java.io._ import java.text.SimpleDateFormat import java.util.Calendar -import api.sampling.Evaluator -import breeze.linalg.DenseVector -import scalismo.geometry.{EuclideanVector, Point, _3D} -import scalismo.mesh.TriangleMesh -import scalismo.statisticalmodel.PointDistributionModel - import scala.collection.SortedSet import scala.collection.mutable.ListBuffer import scala.io.Source diff --git a/src/main/scala/apps/DemoDatasetLoader.scala b/src/main/scala/apps/DemoDatasetLoader.scala index 9b6b42d..c8ea408 100644 --- a/src/main/scala/apps/DemoDatasetLoader.scala +++ b/src/main/scala/apps/DemoDatasetLoader.scala @@ -17,16 +17,16 @@ package apps -import apps.gpmm.{GaussDotKernel, GaussKernel, GaussMirrorKernel, GaussMixKernel, InvLapDotKernel, InvLapKernel, SimpleTriangleModels3D, WhichKernel} -import java.io.File - +import apps.gpmm._ import scalismo.common.interpolation.TriangleMeshInterpolator3D -import scalismo.geometry.{_3D, Landmark, Point} +import scalismo.geometry.{Landmark, Point, _3D} import scalismo.io.{LandmarkIO, MeshIO, StatisticalModelIO} import scalismo.mesh.TriangleMesh import scalismo.statisticalmodel.PointDistributionModel import scalismo.transformations.{TranslationAfterRotation, TranslationAfterRotationSpace3D} +import java.io.File + trait DataSetLoader { def name: String def path: File diff --git a/src/main/scala/apps/registration/DemoCPD.scala b/src/main/scala/apps/registration/DemoCPD.scala index cd2fe24..0e779e9 100644 --- a/src/main/scala/apps/registration/DemoCPD.scala +++ b/src/main/scala/apps/registration/DemoCPD.scala @@ -17,12 +17,10 @@ package apps.registration -import java.io.File - -import api.{NoTransforms, RigidTransforms} +import api.NoTransforms import apps.DemoDatasetLoader -import scalismo.geometry.{EuclideanVector, Point} -import scalismo.transformations.{Rotation, Translation, TranslationAfterRotation} + +import java.io.File object DemoCPD extends App { scalismo.initialize() diff --git a/src/main/scala/apps/registration/DemoConfigurations.scala b/src/main/scala/apps/registration/DemoConfigurations.scala index 24d394e..2f12a87 100644 --- a/src/main/scala/apps/registration/DemoConfigurations.scala +++ b/src/main/scala/apps/registration/DemoConfigurations.scala @@ -17,9 +17,9 @@ package apps.registration +import api.registration.config._ import api.{GeneralRegistrationState, GlobalTranformationType, NoTransforms, RigidTransforms} -import api.registration.config.{CpdConfiguration, CpdRegistration, CpdRegistrationState, IcpConfiguration, IcpRegistration, IcpRegistrationState} -import scalismo.geometry.{_3D, Landmark} +import scalismo.geometry.{Landmark, _3D} import scalismo.mesh.TriangleMesh import scalismo.statisticalmodel.PointDistributionModel import scalismo.utils.Random.implicits.randomGenerator diff --git a/src/main/scala/apps/registration/DemoICP.scala b/src/main/scala/apps/registration/DemoICP.scala index b6e49dc..8399858 100644 --- a/src/main/scala/apps/registration/DemoICP.scala +++ b/src/main/scala/apps/registration/DemoICP.scala @@ -19,9 +19,6 @@ package apps.registration import api.NoTransforms import apps.DemoDatasetLoader -import scalismo.geometry.{EuclideanVector, Point} -import scalismo.transformations.{Rotation, Translation, TranslationAfterRotation} -import scalismo.utils.Random.implicits.randomGenerator import java.io.File diff --git a/src/main/scala/apps/registration/DemoLandmarks.scala b/src/main/scala/apps/registration/DemoLandmarks.scala index 7855acb..40177a3 100644 --- a/src/main/scala/apps/registration/DemoLandmarks.scala +++ b/src/main/scala/apps/registration/DemoLandmarks.scala @@ -17,7 +17,6 @@ package apps.registration -import api.RigidTransforms import apps.DemoDatasetLoader object DemoLandmarks extends App { diff --git a/src/main/scala/apps/registration/DemoMultiResolution.scala b/src/main/scala/apps/registration/DemoMultiResolution.scala index c3f29c8..e4d0681 100644 --- a/src/main/scala/apps/registration/DemoMultiResolution.scala +++ b/src/main/scala/apps/registration/DemoMultiResolution.scala @@ -20,7 +20,7 @@ package apps.registration import api.GeneralRegistrationState import api.registration.config._ import apps.DemoDatasetLoader -import scalismo.geometry.{_3D, EuclideanVector, Point} +import scalismo.geometry.{EuclideanVector, Point, _3D} import scalismo.mesh.TriangleMesh import scalismo.statisticalmodel.PointDistributionModel import scalismo.transformations.{Rotation, Translation, TranslationAfterRotation} diff --git a/src/main/scala/apps/registration/DemoPosteriorVisualizationFemur.scala b/src/main/scala/apps/registration/DemoPosteriorVisualizationFemur.scala index f5fcc2e..0893682 100644 --- a/src/main/scala/apps/registration/DemoPosteriorVisualizationFemur.scala +++ b/src/main/scala/apps/registration/DemoPosteriorVisualizationFemur.scala @@ -22,7 +22,6 @@ import api.helper.{LogHelper, PosteriorHelper} import api.sampling.loggers.JSONStateLogger import apps.DemoDatasetLoader import scalismo.ui.api.ScalismoUI -import scalismo.utils.Random.implicits.randomGenerator import java.awt.Color import java.io.File diff --git a/src/main/scala/apps/registration/DemoUI.scala b/src/main/scala/apps/registration/DemoUI.scala index da18417..d24266e 100644 --- a/src/main/scala/apps/registration/DemoUI.scala +++ b/src/main/scala/apps/registration/DemoUI.scala @@ -17,12 +17,8 @@ package apps.registration -import api.NoTransforms -import apps.DemoDatasetLoader import scalismo.ui.api.ScalismoUI -import java.io.File - object DemoUI extends App { scalismo.initialize() val ui = ScalismoUI() diff --git a/src/main/scala/apps/registration/SimpleRegistrator.scala b/src/main/scala/apps/registration/SimpleRegistrator.scala index 69d0901..42fcedc 100644 --- a/src/main/scala/apps/registration/SimpleRegistrator.scala +++ b/src/main/scala/apps/registration/SimpleRegistrator.scala @@ -17,12 +17,12 @@ package apps.registration +import api._ import api.helper.{CallBackFunctions, RegistrationComparison} import api.registration.config.StateHandler import api.sampling.IndependtPoints import api.sampling.evaluators.{EvaluationMode, ModelToTargetEvaluation} import api.sampling.loggers.JSONStateLogger -import api._ import scalismo.common.interpolation.NearestNeighborInterpolator import scalismo.geometry.{Landmark, _3D} import scalismo.mesh.TriangleMesh diff --git a/src/main/scala/other/algorithms/cpd/AffineCPD.scala b/src/main/scala/other/algorithms/cpd/AffineCPD.scala index 9f0a6ee..67a5241 100644 --- a/src/main/scala/other/algorithms/cpd/AffineCPD.scala +++ b/src/main/scala/other/algorithms/cpd/AffineCPD.scala @@ -18,7 +18,7 @@ package other.algorithms.cpd import api.registration.utils.PointSequenceConverter -import breeze.linalg.{diag, inv, sum, trace, Axis, DenseMatrix, DenseVector, InjectNumericOps} +import breeze.linalg.{Axis, DenseMatrix, DenseVector, InjectNumericOps, diag, inv, sum, trace} import scalismo.common._ import scalismo.geometry.{NDSpace, Point} diff --git a/src/main/scala/other/algorithms/cpd/BCPD.scala b/src/main/scala/other/algorithms/cpd/BCPD.scala index 568a8eb..a6eccd4 100644 --- a/src/main/scala/other/algorithms/cpd/BCPD.scala +++ b/src/main/scala/other/algorithms/cpd/BCPD.scala @@ -18,7 +18,7 @@ package other.algorithms.cpd import api.registration.utils.PointSequenceConverter -import breeze.linalg.{det, diag, kron, pinv, sum, svd, tile, trace, Axis, DenseMatrix, DenseVector} +import breeze.linalg.{Axis, DenseMatrix, DenseVector, det, diag, kron, pinv, sum, svd, tile, trace} import breeze.numerics.{abs, digamma} import scalismo.common.Vectorizer import scalismo.geometry.{NDSpace, Point} diff --git a/src/main/scala/other/algorithms/cpd/NonRigidCPD.scala b/src/main/scala/other/algorithms/cpd/NonRigidCPD.scala index 0e13355..c9ce87c 100644 --- a/src/main/scala/other/algorithms/cpd/NonRigidCPD.scala +++ b/src/main/scala/other/algorithms/cpd/NonRigidCPD.scala @@ -18,7 +18,7 @@ package other.algorithms.cpd import api.registration.utils.PointSequenceConverter -import breeze.linalg.{diag, inv, sum, Axis, DenseMatrix, DenseVector} +import breeze.linalg.{Axis, DenseMatrix, DenseVector, diag, inv, sum} import scalismo.common.Vectorizer import scalismo.geometry.{NDSpace, Point} diff --git a/src/main/scala/other/algorithms/cpd/RigidCPD.scala b/src/main/scala/other/algorithms/cpd/RigidCPD.scala index 7d7cc31..37d7acc 100644 --- a/src/main/scala/other/algorithms/cpd/RigidCPD.scala +++ b/src/main/scala/other/algorithms/cpd/RigidCPD.scala @@ -18,7 +18,7 @@ package other.algorithms.cpd import api.registration.utils.PointSequenceConverter -import breeze.linalg.{*, det, diag, norm, sum, svd, tile, trace, Axis, DenseMatrix, DenseVector} +import breeze.linalg.{*, Axis, DenseMatrix, DenseVector, det, diag, norm, sum, svd, tile, trace} import breeze.numerics.{abs, pow} import scalismo.common.Vectorizer import scalismo.geometry.{NDSpace, Point} diff --git a/src/main/scala/other/algorithms/icp/NonRigidOptimalStepICP.scala b/src/main/scala/other/algorithms/icp/NonRigidOptimalStepICP.scala index 54250cb..81856e8 100644 --- a/src/main/scala/other/algorithms/icp/NonRigidOptimalStepICP.scala +++ b/src/main/scala/other/algorithms/icp/NonRigidOptimalStepICP.scala @@ -18,7 +18,7 @@ package other.algorithms.icp import api.registration.utils.{NonRigidClosestPointRegistrator, PointSequenceConverter} -import breeze.linalg.{diag, CSCMatrix, DenseMatrix, SparseVector} +import breeze.linalg.{CSCMatrix, SparseVector, diag} import other.utils.CSCHelper import scalismo.common.{DomainWarp, PointId, UnstructuredPoints3D, Vectorizer} import scalismo.geometry._ diff --git a/src/main/scala/other/utils/PoseRegistrator.scala b/src/main/scala/other/utils/PoseRegistrator.scala index 483509a..0f153aa 100644 --- a/src/main/scala/other/utils/PoseRegistrator.scala +++ b/src/main/scala/other/utils/PoseRegistrator.scala @@ -18,7 +18,7 @@ package other.utils import scalismo.common.UnstructuredPoints -import scalismo.geometry.{_2D, _3D, Point} +import scalismo.geometry.{Point, _2D, _3D} import scalismo.registration.LandmarkRegistration trait Registrator[D] {