我正在使用OpenCV在安卓手机(Moto )上编写一个用于计算机视觉的定制应用程序。使事情更复杂的是,我有一个鱼眼附加镜头连接在相机上。
现在,我注意到当我在获取预览图像时移动设备时,鱼眼透镜照亮的圆形区域会明显移动,甚至在设备不移动时也会产生抖动(请参阅https://youtu.be/J4Ns0mzgFww的插图,难以描述)。
这个效果看起来像是鱼眼镜头在实际镜头前的物理移动,但它是非常严格的连接,即使是很慢的动作也会发生这种情况。所以,我唯一的解释是,在背景的某个地方有某种低水平的图像稳定过程在运行。
不幸的是,这完全扰乱了我的相机校准,因为cx/cy不再稳定。我看过how can i set the camera function that anti-shake(image Stabilizer) at android,但是Camera.Parameters对象告诉我,video-stabilization-supported=false和改变场景模式也没有什么区别。
关于如何获得不稳定的预览图像,还有其他的提示/想法吗?我认为在原始模式下使用Camera2 API可能有效,但这意味着重写一大块OpenCV图像采集代码.优先选择:-)
发布于 2019-08-21 12:32:18
和往常一样,我在贴出问题15分钟后自己想出了答案。哦,好吧。不管怎么说。
这在Camera2 API中是可能的
requestBuilder.set(CaptureRequest.LENS_OPTICAL_STABILIZATION_MODE,
CameraMetadata.LENS_OPTICAL_STABILIZATION_MODE_OFF);仍然意味着我将不得不切换到Camera2 API,但至少不要切换到RAW。从4.0开始,OpenCV实际上有一个现成的JavaCamera2View类,只需要稍作修改。更多详细信息/文档可在MODE上获得。
https://stackoverflow.com/questions/57586591
复制相似问题