繁体   English   中英

使用CameraGLSurfaceView以纵向模式显示camera2预览

[英]Displaying camera2 preview in portrait mode using CameraGLSurfaceView

我正在尝试使用Camera2 API和OpenCV的CameraGLSurfaceView在Android AR应用程序中使用OpenCV。 在纵向模式下使用应用程序时,图像仍处于横向模式(旋转90度并拉伸)。 在横向模式下使用它时一切正常。

据我所知,问题源于相机始终以横向模式提供帧,而OpenGL部分干扰视图调整为纵向模式。 因此,我尝试在代码的c ++部分中移植和翻转图像,以及将预览大小调整为纵向,但最终变为半黑色并压扁(见图像)。

还有另一种解决这个问题的方法吗?

有没有人有使用CameraGLSurfaceView在肖像模式下使用CameraGLSurfaceView的经验,可以帮我解决这个问题吗?

在此输入图像描述

我实际上找到了一个在尝试至少一天之后对我有用的解决方案,可能在尝试之前我应该​​更多地考虑openGL ...

对于其他遇到同样问题的人,可以在OpenCV的CameraGLRenderBase中更改texCoord2D(您可以通过监听旋转变化并相应地调整坐标来扩展它)。 对于肖像模式,我可以设置它

private final float texCoord2D[] = { 1, 0, 0, 0, 1, 1, 0, 1 }; 这种方法的优点是您不需要在OpenCV代码中进行任何翻转,它似乎根本不会影响帧速率。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM