我目前正在尝试在以较低质量捕获视频期间以最佳质量拍摄图像。问题是,我正在使用视频流来检查面部是否在摄像头前面,这需要大量资源,所以我使用的是质量较低的视频流,如果检测到任何面部我想拍摄一张高质量的照片。
最好的问候和感谢您的帮助!
我目前正在尝试在以较低质量捕获视频期间以最佳质量拍摄图像。问题是,我正在使用视频流来检查面部是否在摄像头前面,这需要大量资源,所以我使用的是质量较低的视频流,如果检测到任何面部我想拍摄一张高质量的照片。
最好的问候和感谢您的帮助!
您不能有多个捕获会话,因此在某些时候您需要切换到更高分辨率。您说的第一件事是,在使用高分辨率快照时,人脸检测会占用太多资源。为什么不尝试简单地对图像进行下采样并一直使用高分辨率(将下采样的图像发送到人脸检测,显示高分辨率):
我将从最常见的苹果图形上下文开始并尝试缩小它。如果这需要太多的 cpu,你可以尝试在 GPU 上做同样的事情(找到一些这样做的库或只是创建一个简单的程序),或者你甚至可以尝试简单地将图像的奇数行和列作为原始数据删除。在任何这些情况下,您还应该注意,您可能不需要在与显示相同的线程上进行人脸检测,而且您很可能甚至不需要高帧率来进行检测(您显示相机一个完整的 FPS 但更新例如 10 FPS 的人脸识别)。
您可以做的另一件事是简单地将整个事情设为低分辨率,然后当您需要拍摄图像时停止会话,启动高分辨率会话,截取屏幕截图并切换回低分辨率以进行人脸检测。