我UIImagePickerControllerSourceTypeCamera
在iOS中使用。我在使用相机之前的目的是引导用户将相机精确地定位在图像对象的前面。我有一张已知的目标图像 (TI),一张扑克牌,更具体地说是一张 7 的方块,我需要 TI 上的 7 位于相机前的正确位置。有没有办法在用户拍照时将 TI 叠加在屏幕顶部,或者遮盖屏幕的一部分,以便只有 7 出现的地方才会显示要拍摄的照片。
正确定位相机后,我会要求用户保持相机静止并将未知卡片放置在相机前面而不看卡片。
UIImagePickerController有一个cameraOverlayView
属性,您可以将自定义类的实例分配给该属性。该类可以绘制您需要的目标区域图形,它会出现在相机图像的顶部。
如果您需要检查卡片是否确实在该区域内,那么您就处于计算机视觉区域并且事情变得更加复杂。OpenCV是了解相机显示内容的典型起点。
cameraOverlayView
显示在默认图像选择器界面顶部的自定义视图。@property (nonatomic, 保留) UIView *cameraOverlayView 讨论
您可以使用覆盖视图在默认图像选择器界面的顶部呈现自定义视图层次结构。图像选择器将您的自定义覆盖视图分层放置在其他图像选择器视图之上,并将其相对于屏幕坐标定位。如果您将默认相机控件设置为可见,请将透明度合并到您的视图中,或将其放置以避免遮挡底层内容。