首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实时摄像机中的文本检测

问实时摄像机中的文本检测
EN

Stack Overflow用户
提问于 2020-02-18 12:07:53
回答 1查看 864关注 0票数 1

我正在使用快速检测实时摄像机中的文字,但是帧没有识别正确的单词。当我试图检测图像和帧中的文本时,这个应用程序工作得很好。

​

​

对于实时摄像机,我所做的是创建一个捕获视频会话并实现,然后在didOutput中,我将缓冲图像转换为UIImage并检测其中的文本。但在这种情况下,同样的策略并不正确。

​

另外,每次启动视频会话后,didOutput都会调用,我只想在用户移动相机或找到文本时调用函数。

代码语言:javascript
复制
    func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
            print("didOutput")
            // do stuff here
                guard let hasImage = CMSampleBufferGetImageBuffer(sampleBuffer) else {
                    print("no image")
                    return
                }
                let imageBuffer = hasImage
                let ciimage : CIImage = CIImage(cvPixelBuffer: imageBuffer)
                liveCamImage = self.convert(cmage: ciimage)
                DispatchQueue.main.async {
                     self.drawRectOnText(imagefromCam:self.liveCamImage)         
        }
    }

有没有解决办法。//conver函数

代码语言:javascript
复制
func convert(cmage:CIImage) -> UIImage
    {
         let context:CIContext = CIContext.init(options: nil)
         let cgImage:CGImage = context.createCGImage(cmage, from: cmage.extent)!
         let image:UIImage = UIImage.init(cgImage: cgImage)
         return image
    }
EN

回答 1

Stack Overflow用户

发布于 2020-02-19 06:22:48

在转换方法中使用下面的代码:

代码语言:javascript
复制
func convert(samImageBuff:CIImage) -> UIImage{

let imageBuffer = CMSampleBufferGetImageBuffer(samImageBuff)
var ciImage: CIImage? = nil
if let imageBuffer = imageBuffer as? CVPixelBuffer {
    ciImage = CIImage(cvPixelBuffer: imageBuffer)
}
let temporaryContext = CIContext(options: nil)
var videoImage: CGImage? = nil
if let ciImage = ciImage {
    videoImage = temporaryContext.createCGImage(ciImage, from: CGRect(x: 0, y: 0, width: CVPixelBufferGetWidth(imageBuffer), height: CVPixelBufferGetHeight(imageBuffer)))
}

var image: UIImage? = nil
if let videoImage = videoImage {
    image = UIImage(cgImage: videoImage)
}
CGImageRelease(videoImage)
 return image
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60280584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档