Swift 如何修改";AR参考图像集“;在会话运行期间?
在我的应用程序中,我拍摄了几张照片,并将它们作为UIImages添加到一个名为imagesPicked的数组中。我将该数组转换为一个集合,通过按钮操作将其加载到配置中,然后通过resetTracking()运行会话。所有这些都是通过以下代码实现的。但我希望修改该代码,以便能够在仍在运行时向AR参考图像集添加新图像(例如更改配置),而无需重置会话。我怎样才能做到这一点?ThxSwift 如何修改";AR参考图像集“;在会话运行期间?,swift,xcode,scenekit,arkit,detection,Swift,Xcode,Scenekit,Arkit,Detection,在我的应用程序中,我拍摄了几张照片,并将它们作为UIImages添加到一个名为imagesPicked的数组中。我将该数组转换为一个集合,通过按钮操作将其加载到配置中,然后通过resetTracking()运行会话。所有这些都是通过以下代码实现的。但我希望修改该代码,以便能够在仍在运行时向AR参考图像集添加新图像(例如更改配置),而无需重置会话。我怎样才能做到这一点?Thx var detectionImages = Set<ARReferenceImage>() func rese
var detectionImages = Set<ARReferenceImage>()
func resetTracking() {
let configuration = ARWorldTrackingConfiguration()
configuration.detectionImages = detectionImages
session.run(configuration, options: [.resetTracking, .removeExistingAnchors])
}
var index = 0
func createARReferenceSet() -> Set<ARReferenceImage>?
{
var customReferenceSet = Set<ARReferenceImage>()
do{
for i in 0...imagesPicked.count-1{
let image = imagesPicked[i]
let cgImage = image?.cgImage
let imageWidth = CGFloat(0.1)
let customARReferenceImage = ARReferenceImage(cgImage!, orientation: CGImagePropertyOrientation.up, physicalWidth: imageWidth)
customARReferenceImage.name = "MyCustomARImage\(index)"
customReferenceSet.insert(customARReferenceImage)
index += 1
}
}
return customReferenceSet
}
}
@IBAction func detectChosenImage(_ sender: Any) {
detectionImages = createARReferenceSet()!
resetTracking()
}
var detectionImages=Set()
func resetTracking(){
let configuration=ARWorldTrackingConfiguration()
configuration.detectionImages=detectionImages
运行(配置,选项:[.resetTracking、.removeExistingAnchors])
}
var指数=0
func createARReferenceSet()->Set?
{
var customReferenceSet=Set()
做{
对于0中的i…imagesPicked.count-1{
设image=imagesPicked[i]
设cgImage=image?.cgImage
设imageWidth=CGFloat(0.1)
让customARReferenceImage=ARReferenceImage(cgImage!,方向:CGImagePropertyOrientation.up,物理宽度:imageWidth)
customARReferenceImage.name=“MyCustomARImage\(索引)”
customReferenceSet.insert(customARReferenceImage)
指数+=1
}
}
返回customReferenceSet
}
}
@iAction func detectChosenImage(u发送方:任意){
detectionImages=createARReferenceSet()!
重置跟踪()
}
要在不重置当前会话的情况下将图像添加到AR参考图像集,请在不重置当前会话的情况下运行新配置。[.resetTracking.removeExistingAnchors]选项,尝试只调用会话。运行(配置)
运行正在使用的新配置时。[.resetTracking.removeExistingAnchors]选项,尝试调用会话。运行(配置)
。是的,您是对的。谢谢:)很高兴听到这个消息,只是作为回答发布的