这是错误:
<console>:123: error: type mismatch;
found : Seq[scala.collection.immutable.Seq[scalismo.geometry.Landmark[scalismo.geometry._3D]]]
required: scala.collection.Seq[scalismo.geometry.Landmark[scalismo.geometry._3D]]
val rigidTrans = LandmarkRegistration.rigid3DLandmarkRegistration(landmarks, reflandmarks.toSeq)
以下代码片段:
val alignedSet = toAlign.map { mesh =>
val landmarks = pointIds.map{id => Landmark("L_"+id, mesh.point(PointId(id)))}
val rigidTrans = LandmarkRegistration.rigid3DLandmarkRegistration(landmarks, reflandmarks.toSeq)
mesh.transform(rigidTrans)
}
如果仔细查看,简而言之,错误为found Seq[Seq[X]]; required Seq[X]
。虽然您的文章没有显示错误位置(控制台中的插入符号^
(,但我怀疑这是针对reflandmarks.toSeq
的。因此CCD_ 4给出了CCD_。要展平嵌套序列,可以使用flatten
,因此使用reflandmarks.toSeq.flatten
可能会起作用。
请注意,由于子类型,在需要collection.Seq
的地方传递参数collection.immutable.Seq
总是可能的,因此这与实际问题无关。