在为inApp相机实施camera2 API后,我注意到在三星设备上图像显得模糊。搜索之后,我找到了Sasmung Camera SDK(http://developer.samsung.com/galaxy#camera)。因此,在三星Galaxy S7上实施SDK后,图像现在很好,但在Galaxy S6上它们仍然模糊不清。有人在三星设备上遇到过这些问题吗?
编辑:补充@rcsumners的评论。我正在使用设置自动对焦
mPreviewBuilder.set(SCaptureRequest.CONTROL_AF_TRIGGER, SCaptureRequest.CONTROL_AF_TRIGGER_START);
mSCameraSession.capture(mPreviewBuilder.build(), new SCameraCaptureSession.CaptureCallback() {
@Override
public void onCaptureCompleted(SCameraCaptureSession session, SCaptureRequest request, STotalCaptureResult result) {
isAFTriggered = true;
}
}, mBackgroundHandler);
这是一种长曝光图像,用户必须拍摄静态非运动物体的图像。为此,我使用CONTROL_AF_MODE_MACRO
mCaptureBuilder.set(SCaptureRequest.CONTROL_AF_MODE, SCaptureRequest.CONTROL_AF_MODE_MACRO);
如果可用,我也会启用自动闪光
requestBuilder.set(SCaptureRequest.CONTROL_AE_MODE,
SCaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);
我不是这个API的专家,我主要关注SDK示例应用程序。
您正在为一帧设置自动对焦触发器,但您是否正在等待自动对焦完成?对于AF_MODE_MACRO(您是否正在验证设备列表是否支持此AF模式?)在保证图像稳定和清晰之前,您需要等待AF_STATE_FOCUS_LOCKED。(如果AF算法无法达到清晰焦点,您也可能会收到NOT_FOCUSED_LOCKED,这可能是因为对象离镜头太近,或者场景太混乱。)
在大多数现代设备上,建议使用CONTINUOUS_PICTURE,不要担心自动对焦触发,除非你真的想在一段时间内锁定焦点。在这种模式下,设备会不断尝试尽其所能聚焦。首先,我不确定是否有那么多设备支持MACRO。
可能有许多问题导致此问题。一个突出的问题是输出图像的尺寸。我运行了Camera2 API,预览很清晰,但输出非常模糊
val characteristics: CameraCharacteristics? = cameraManager.getCameraCharacteristics(cameraId)
val size = characteristics?.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP)?.getOutputSizes(ImageFormat.JPEG) // The issue
val width = imageDimension.width
val height = imageDimension.height
if (size != null) {
width = size[0].width; height = size[0].height
}
val imageReader = ImageReader.newInstance(width, height, ImageFormat.JPEG, 5)
下面的代码返回一个大约245*144的尺寸,对于发送到图像阅读器来说太小了。一些输出如何拉伸图像,使它变得模糊。因此,我删除了下面这条线。
val size = characteristics?.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP)?.getOutputSizes(ImageFormat.JPEG) // this was returning a small
手动设置宽度和高度解决了该问题。
有人知道模拟器相机启动时是否有可能打开一些个人照片吗? 我有一个基于图像分析的应用程序,我想当我点击相机的按钮时,相机打开的不是默认的Android emulator运动图像。我希望它打开一些我设置为默认图像的图像。因此,当我选择拍照时,它将只显示该图像,当我拍照时,该图像将保存到gallery,而不是Android默认图像。
我有一个问题与我的代码,我必须上传图像到Firebase存储,我需要的图像来自画廊和相机,从画廊的图像是好的,但来自相机的图像给问题,图像加载在ImageView和被发送到数据库是黑色的。有人知道如何解决这个问题吗,或者你知道任何其他加载图像的方法吗? 来自画廊 从相机
在相机意图返回时获得文件路径的最佳方法是什么。当然,我可以在启动意图之前将文件路径保存到成员变量,但这似乎不好,我应该从OnActivityResult中获得路径。 我已经试过了(从相机意图获取图像路径): 唯一不同的是,我在尝试内部存储pic时使用了INTERNAL_CONTENT_URI。如果我这样做,我会得到一个异常:
我在为三星S21设计的应用程序中使用了Camera2 Api。这款手机有3个后置摄像头和一个前置摄像头。我试图选择使用的物理摄像机,但是函数getPhysicalCameraIds()总是返回一个空数组。是否有其他方法获取PhysicalCameraIds或指定要使用的摄像机??有人能解释一下吗?
我的第一个问题!我有一段代码有问题,它用额外的输出选项开始相机意图,然后在活动结果上试图调整图像的大小。正在发生的情况是,在回调时的resize函数中会引发一个nullpointer异常。 活动结果回调函数: 下面是logcat:
我试图创建一个用于研究的简单相机应用程序。我阅读了Android摄像头的官方文档,然后开始编码。所以我采取了一些措施 1.在应用程序中添加了相机功能所需的权限。 2.仅将我的活动锁定为纵向模式。 setRequestedOrientation(ActivityInfo.SCREEN\u ORIENTATION\u PORTRAIT); 3、添加了几个摄像头回调以使我的摄像头正常工作。 表面层。回调