GMVTextLineFeature возвращает ноль при инициализации с изображением в iOS
Я инициализировал textlinedetector
как показано ниже
self.textDetector = [GMVDetector detectorOfType:GMVDetectorTypeText options:nil];
Так как я хочу только строку, а не весь блок, я имею прямой доступ GMVTextLineFeature
и входное изображение имеет тип UIImage
прямо с камеры предварительного просмотра.
NSArray<GMVTextLineFeature *> *features = [self.textDetector featuresInImage:[_Result originalImage] options:nil];
Но приведенный выше массив равен нулю.
[myOperation setCompletionBlock:^{
for (GMVTextLineFeature *textLine in features) {
NSLog(@"value of each element: %@", textLine.value);
_Result.text = textLine.value;
}
[self finishDetection];
}];
[_operationQueue addOperation:myOperation];
Меня беспокоит то, что мой проект находится в зачаточном состоянии, а GoogleVision построен на Cocoapods. Поэтому я вручную скопировал файлы фреймворка в свой проект и связал его frameworks and libraries
, Я также связал файлы ресурсов для фреймворков, где он содержит все файлы конфигурации config copy resource bundles
,
Все же feature
объект nil
, Я также несколько раз чистил проект. Так как я новичок в iOS, я не могу понять, является ли это проблемой с cocoapods для gradle или как она реализована. Но именно так это реализовано в демонстрационном приложении TextDetectorDemo. Я использую XCode 9.4.
Любое понимание или любые обходные пути будут высоко ценится.
Заранее спасибо.
1 ответ
Преобразуйте или воссоздайте UIImage, прежде чем переходить на мобильное зрение с аналогичным расширением, фильтр можно изменить в соответствии с вашими потребностями
extension UIImage {
var noir: UIImage? {
let context = CIContext(options: nil)
guard let currentFilter = CIFilter(name: "CISharpenLuminance") else { return nil }
currentFilter.setValue(CIImage(image: self), forKey: kCIInputImageKey)
if let output = currentFilter.outputImage,
let cgImage = context.createCGImage(output, from: output.extent) {
return UIImage(cgImage: cgImage, scale: scale, orientation: imageOrientation)
}
return nil
}
}