在iOS中使用图片初始化时,GMVTextLineFeature返回null

时间:2018-08-15 13:21:35

标签: ios gradle cocoapods google-vision google-ios-vision

我已按如下所示初始化textlinedetector

self.textDetector = [GMVDetector detectorOfType:GMVDetectorTypeText options:nil]; 

由于我只需要行而不是整个块,因此我直接访问GMVTextLineFeature,并且直接从摄像机预览中输入UIImage类型的图像。

NSArray<GMVTextLineFeature *> *features = [self.textDetector featuresInImage:[_Result originalImage] options:nil]; 

但是上面的数组为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却是内置在可可足类中。因此,我手动将框架文件复制到我的项目中,并在frameworks and libraries中进行了链接。我还链接了框架的资源文件,其中包含copy resource bundles下的所有conv配置文件。

但是feature对象是nil。我也多次清洁建造了该项目。由于我是iOS的新手,所以我无法弄清楚这是Cocoapods遇到问题还是实现方式。但这就是在演示应用TextDetectorDemo中实现的方式。我正在使用xcode 9.4。

任何见解或任何变通办法将不胜感激。

先谢谢了。

1 个答案:

答案 0 :(得分:0)

转换或重新创建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
    }
}