问题描述
我有一个来自摄像机供稿的CVPixelBuffer
。我想在图像的一小部分而不是整个图像上运行视觉文本检测。我尝试从CVPixelBuffer
转换为CGImage
,但是它存在一些性能问题。我想知道在给定CGRect
的情况下是否有任何方法可以裁剪CVPixelBuffer。
这是我的代码:
func captureOutput(_ output: AVCaptureOutput,didOutput sampleBuffer: CMSampleBuffer,from connection: AVCaptureConnection) {
guard let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else {
return
}
var requestOptions:[VNImageOption : Any] = [:]
if let cameraData = CMGetAttachment(sampleBuffer,key: kCMSampleBufferAttachmentKey_CameraIntrinsicMatrix,attachmentModeOut: nil) {
requestOptions = [.cameraIntrinsics : cameraData]
}
let imageRequestHandler = VNImageRequestHandler(cvPixelBuffer: pixelBuffer,orientation: .up,options: requestOptions)
do {
try imageRequestHandler.perform([textRecognitionRequest])
} catch {
MAFUtility.logInput(input: error)
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)