2
// init bounding
CGRect rect = CGRectMake(0, 0, 0.3, 0.3);
VNSequenceRequestHandler* reqImages = [[VNSequenceRequestHandler alloc] init];
VNRectangleObservation* ObserveRect = [VNRectangleObservation observationWithBoundingBox:rect];
VNTrackRectangleRequest* reqRect = [[VNTrackRectangleRequest alloc] initWithRectangleObservation:ObserveRect];
NSArray<VNRequest *>* requests = [NSArray arrayWithObjects:reqRect, nil];
BOOL bsucc = [reqImages performRequests:requests onCGImage:img.CGImage error:&error];

// get tracking bounding
VNDetectRectanglesRequest* reqRectTrack = [VNDetectRectanglesRequest new];
NSArray<VNRequest *>* requestsTrack = [NSArray arrayWithObjects:reqRectTrack, nil];
[reqImages performRequests:requestsTrack onCGImage:img.CGImage error:&error];

VNRectangleObservation* Observe = [reqRectTrack.results firstObject];
CGRect boundingBox = Observe.boundingBox;

为什么boundingBox值不正确?

如何找到 ios11 的 vision.framework 的 demo?

4

2 回答 2

4

视觉框架跟踪一个对象,可以在这个链接中找到一个演示:

https://github.com/jeffreybergier/Blog-Getting-Started-with-Vision 图片来源:杰弗里·伯杰

Blogger 在这里详细介绍了如何让演示工作,并有一个显示工作构建的 gif。

希望这就是你所追求的。

于 2017-06-19T11:32:46.813 回答
4

这是我使用 Vision 框架的简单示例:https ://github.com/artemnovichkov/iOS-11-by-Examples 。我猜你对不同的坐标系有问题。注意rect转换:

cameraLayer.metadataOutputRectConverted(fromLayerRect: originalRect)

cameraLayer.layerRectConverted(fromMetadataOutputRect: transformedRect)

于 2017-06-20T16:43:46.363 回答