Как я могу использовать API отслеживания объектов каркаса видения на ios11?

// 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 неверно?

Как я могу найти демо-версию vision.framework для ios11?

2 ответа

Решение

Вот мой простой пример использования Vision Framework: https://github.com/artemnovichkov/iOS-11-by-Examples. Я думаю, у вас есть проблемы с различными системами координат. Обратите внимание на прямоугольное преобразование:

cameraLayer.metadataOutputRectConverted(fromLayerRect: originalRect)

а также

cameraLayer.layerRectConverted(fromMetadataOutputRect: transformedRect)

Vision Framework отслеживания объекта, демонстрацию для этого можно найти по этой ссылке:

https://github.com/jeffreybergier/Blog-Getting-Started-with-Vision Кредит Фотографии: Джеффри Берджер

Blogger подробно рассказывает о том, как заставить демо работать, и имеет gif, показывающий работающую сборку.

Надеюсь, это то, что вы после.

Другие вопросы по тегам