- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Firebase 的 MLKit 与 Camerax 进行人脸检测。我很难让图像分析的 imageproxy 大小与 PreviewView 的大小相匹配。对于图像分析和 PreviewView,我将 setTargetResolution() 设置为 PreviewView 的宽度和高度。但是,当我在分析器中检查 Imageproxy 的大小时,它给我的宽度是 1920,高度是 1080。我的 PreviewView 宽度为 1080,高度为 2042。当我在 setTargetResolution() 中交换宽度和高度以进行图像分析时,imageproxy 中的宽度和高度都为 1088。我的预览 View 也锁定为纵向模式。
最终,我需要将原始图像代理数据和面部点数据输入到 AR 代码中。因此,仅放大绘制面部点的图形叠加层对我不起作用。
问:如果无法在 camerax 库中解决此问题,如何缩放从分析器返回的图像代理以匹配预览 View ?
我正在使用 Java 和最新的 Camerax 库:
def camerax_version = "1.0.0-beta08"
最佳答案
确保预览和图像分析用例具有相同的输出分辨率是相当困难的,因为不同的设备支持不同的分辨率,并且图像分析对其输出的最大分辨率有硬性限制(如 the documentation 中所述)。
为了使图像分析帧和 UI/PreviewView 的坐标之间的转换更容易,您可以将预览和 ImageAnalysis 设置为使用相同的纵横比,例如 AspectRatio.RATIO_4_3
,以及 PreviewView(例如,通过将其包装在 ConstraintLayout 中,并对其宽度/高度比设置约束)。这样,检测到的人脸坐标从分析器映射到 UI 变得更加直接,您可以在 this sample 中查看它。 .
或者,您可以使用 CameraX 的 ViewPort我相信的 API 仍然是实验性的。它允许为一组用例定义一个视野,从而使它们的输出匹配并具有所见即所得。您可以找到它的用法示例here .对于你的情况,你会写这样的东西。
Preview preview = ...
preview.setSurfaceProvider(previewView.getSurfaceProvider());
ImageAnalysis imageAnalysis = ...
imageAnalysis.setAnalyzer(...);
ViewPort viewPort = preview.getViewPort();
UseCaseGroup useCaseGroup = new UseCaseGroup.Builder()
.setViewPort(viewPort)
.addUseCase(preview)
.addUseCase(imageAnalysis)
.build();
cameraProvider.bindToLifecycle(
lifecycleOwner,
cameraSelector,
usecaseGroup);
在这种情况下,您的分析器接收到的每个 ImageProxy 都将包含一个
crop rect与 PreviewView 显示的内容相匹配。因此,您只需裁剪图像,然后将其传递给人脸检测器。
关于android - CameraX图像分析的imageproxy大小和PreviewView大小不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63902317/
我正在尝试在方向更改时实现平稳过渡,就像普通相机应用程序所做的那样(图标旋转,相机 View 不闪烁)。 我已经通过设置 ROTATION_ANIMATION_CROSSFADE 完成了图标旋转部分,
当我进入示例应用程序代码时,提到在创建项目时选择 Kotlin。 我以前使用过camera2 API。 最佳答案 如果您的意思是开发基于camerax 的应用程序。 你可以使用java。他们甚至在 J
我想将 CameraX 预览从 previewView 转换为位图。类似于 textureView.bitmap 的东西 我已经用 textureview 试过了,效果很好,我可以截取 camerav
我尝试使用 Android 开发人员 documentation 使用 CameraX 实现 MLKit 文本分析器.我的期望是分析器将在每一帧上运行,但它只运行一次,当预览初始化时。文本由 MLKi
我尝试使用 CameraView。我是 Android 的初学者。我阅读了一些关于类的文章和信息,但我无法让它发挥作用。 我有以下错误: Caused by: java.lang.IllegalSta
请,有人可以提供使用带有 GLSurfaceView 的 CameraX 库的好例子,找不到任何信息。 最佳答案 不存在将 CameraX 与自定义表面/TextureView 一起使用的文档。在 C
我关注了 Google CameraX code lab实现自定义相机。相机预览很好,但是当我在图像捕获图像旋转后拍摄图像时。我正在以纵向模式拍摄图像,但保存的图像是横向的。这是配置相机的方法 pri
我使用以下版本的 CameraX 依赖项: implementation "androidx.camera:camera-camera2:1.0.0-beta04" implementation "a
对于涉及光学相机通信 (OCC) 的研究项目,我需要主动分析视频帧,我目前正在使用 python 和 opencv 在我的电脑上离线进行分析(我用智能手机录制视频,然后进行处理) .我想使用我的三星
我正在尝试使用 camerax 拍摄多张照片,但只拍摄了第一张照片,代码和日志输出将显示我的意思。 这是代码: Log.d(TAG, "------------------ takin
我正在迁移到 cameraX 并遇到异常 androidx.camera.core.InitializationException: java.lang.RuntimeException: Error
我想实现一个自定义 View ,它将使用 Camera X API 显示实时预览,但我坚持使用 Camera X 的配置... 基于CameraX sample code ,我尝试实现我的自定义 Vi
我正在尝试编写我的第一个 Android 相机应用程序,但它总是选择变焦相机而不是主相机。 (我在华为 P30 Pro 上测试过) 并且代码基于官方的camerax示例应用程序(https://git
我正在使用 cameraX 录制视频。我需要使用 android-gpuimage 将实时滤镜应用于相机预览或任何其他图书馆。可能吗?如果是,请提供一个例子。 @SuppressLint("R
我在 Android 中使用带有 Firebase ML Kit 的新库 CameraX,并在设备可以检测的每一帧中检测人脸。 所以我这样设置 CameraX: CameraX.bindToLifec
我实现了一个新示例,这里是 a link它描述了来自 Google codelabs 的新 CameraX api,但 TextureView 没有显示任何内容并抛出下一个异常: OpenGLRend
因此,我从使用传统相机 API 迁移到 CameraX,尽管它的设置非常简单,但我注意到了一个问题。现在相机似乎比以前花费了几乎两倍甚至更长的时间来开始显示预览。我正在测试 galaxy s7。我的代
我正在尝试遵循我在网络上找到的代码示例(Gabriel Tanner、Ray Wenderlich、Official Introduction),但我通常在第一行就遇到困难: CameraX.
我的用例是一次拍摄两张图像。第一个是 2 倍变焦,第二个是 1 倍变焦。另外,我想将图像保存到文件中。 我的想法是以 2 倍变焦拍摄第一张图像,并在保存图像时将变焦级别设置为 1 倍,并在镜头变焦到
我正在使用 camerax 在我的 android 应用程序中捕获图像。 对我来说一切都很好,但是一些用户在使用 camerax Activity 时报告黑色预览屏幕。 但是当用户从最近的应用程序中打
我是一名优秀的程序员,十分优秀!