Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在iPhone上以两种不同分辨率同时处理实时视频和静态图像?_Ios_Objective C_Opencv_Image Processing_Avfoundation - Fatal编程技术网

Ios 在iPhone上以两种不同分辨率同时处理实时视频和静态图像?

Ios 在iPhone上以两种不同分辨率同时处理实时视频和静态图像?,ios,objective-c,opencv,image-processing,avfoundation,Ios,Objective C,Opencv,Image Processing,Avfoundation,我正在使用OpenCV为iPhone开发视频处理应用程序 出于性能原因,我不希望以相对较低的分辨率处理实时视频。我正在视频中的每一帧上进行目标检测。当在低分辨率视频帧中发现对象时,我需要以更高的分辨率获取完全相同的帧 我已经能够使用AVFoundation的videoDataBufferOutput和stillImageOutput半完成这项工作,但静态图像不是我需要的精确帧 这方面有什么好的实现方法或者如何自己实现的想法吗?在AVCaptureSessionPresetPhoto中,它使用小视

我正在使用OpenCV为iPhone开发视频处理应用程序

出于性能原因,我不希望以相对较低的分辨率处理实时视频。我正在视频中的每一帧上进行目标检测。当在低分辨率视频帧中发现对象时,我需要以更高的分辨率获取完全相同的帧

我已经能够使用AVFoundation的videoDataBufferOutput和stillImageOutput半完成这项工作,但静态图像不是我需要的精确帧


这方面有什么好的实现方法或者如何自己实现的想法吗?

在AVCaptureSessionPresetPhoto中,它使用小视频预览(对于iPhone6大约1000x700)和高分辨率照片(大约3000x2000)


所以我使用修改过的“CvPhotoCamera”类来处理小预览并拍摄全尺寸照片。我在这里发布了以下代码:

不可能获得完全相同的帧,因为传感器可以在给定时刻捕获静止图像或视频帧。你总是会有一些延迟。您可以做的最接近的事情是捕获高分辨率视频,将高分辨率帧保存在内存中,调整它们的大小并以低分辨率进行对象检测,如果找不到对象,则删除(高分辨率)帧,如果找到了,则使用它。@RosaGronchi感谢您的回复。您知道异步捕获静止图像的信令和实际获取帧之间可能的最小延迟(时间或帧偏移)是多少吗?如果这个延迟足够小,它可能仍然适用于我的目的。我也喜欢你的想法,但我担心存储所有高分辨率帧时的内存问题,因为我已经将每帧的内存密集型图像处理速度降低到了~8fps。最小延迟取决于手机,通常非常短(假设没有闪存,iPhone 5上的延迟时间为25秒或更短)。您不需要存储所有高分辨率的帧,您只能存储当前正在处理的帧(1-4,取决于您使用的是单线程还是多线程)