case class StatisticalMeshModel extends Product with Serializable
A StatisticalMeshModel is isomorphic to a DiscreteLowRankGaussianProcess. The difference is that while the DiscreteLowRankGaussianProcess models defomation fields, the StatisticalMeshModel applies the deformation fields to a mesh, and warps the mesh with the deformation fields to produce a new mesh.
- See also
- Alphabetic
- By Inheritance
- StatisticalMeshModel
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def changeReference(t: (Point[_3D]) => Point[_3D]): StatisticalMeshModel
Warps the reference mesh with the given transform.
Warps the reference mesh with the given transform. The space spanned by the model is not affected.
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def coefficients(mesh: TriangleMesh[_3D]): DenseVector[Double]
- def cov(ptId1: PointId, ptId2: PointId): DenseMatrix[Double]
The covariance between two points of the mesh with given point id.
The covariance between two points of the mesh with given point id.
- def decimate(targetNumberOfVertices: Int): StatisticalMeshModel
Changes the number of vertices on which the model is defined
Changes the number of vertices on which the model is defined
- targetNumberOfVertices
The desired number of vertices
- returns
The new model
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- val gp: DiscreteLowRankGaussianProcess[_3D, TriangleMesh, EuclideanVector[_3D]]
- def instance(c: DenseVector[Double]): TriangleMesh[_3D]
returns a shape that corresponds to a linear combination of the basis functions with the given coefficients c.
returns a shape that corresponds to a linear combination of the basis functions with the given coefficients c.
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def marginal(ptIds: IndexedSeq[PointId]): StatisticalMeshModel
Returns a marginal StatisticalMeshModel, modelling deformations only on the chosen points of the reference
Returns a marginal StatisticalMeshModel, modelling deformations only on the chosen points of the reference
This method proceeds by clipping the reference mesh to keep only the indicated point identifiers, and then marginalizing the GP over those points. Notice that when clipping, not all indicated point ids will be part of the clipped mesh, as some points may not belong to any cells anymore. Therefore 2 behaviours are supported by this method :
1- in case some of the indicated pointIds remain after clipping and do form a mesh, a marginal model is returned only for those points 2- in case none of the indicated points remain (they are not meshed), a reference mesh with all indicated point Ids and no cells is constructed and a marginal over this new reference is returned
- lazy val mean: TriangleMesh[_3D]
The mean shape
The mean shape
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def pdf(instanceCoefficients: DenseVector[Double]): Double
returns the probability density for an instance of the model
returns the probability density for an instance of the model
- instanceCoefficients
coefficients of the instance in the model. For shapes in correspondence, these can be obtained using the coefficients method
- def posterior(trainingData: IndexedSeq[(PointId, Point[_3D], MultivariateNormalDistribution)]): StatisticalMeshModel
Similar to Point[_3D], Double)], but the training data is defined by specifying the target point instead of the displacement vector
- def posterior(trainingData: IndexedSeq[(PointId, Point[_3D])], sigma2: Double): StatisticalMeshModel
Similar to Point[_3D])], sigma2: Double), but the training data is defined by specifying the target point instead of the displacement vector
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- def project(mesh: TriangleMesh[_3D]): TriangleMesh3D
- val rank: Int
- val referenceMesh: TriangleMesh[_3D]
- def sample()(implicit rand: Random): TriangleMesh3D
draws a random shape.
draws a random shape.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def transform(rigidTransform: RigidTransformation[_3D]): StatisticalMeshModel
transform the statistical mesh model using the given rigid transform.
transform the statistical mesh model using the given rigid transform. The spanned shape space is not affected by this operations.
- def truncate(newRank: Int): StatisticalMeshModel
Returns a reduced rank model, using only the leading basis functions.
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()