Android Camera2 不改变伽玛值

问题描述 投票:0回答:2

我有一个 CameraX-App,我正在尝试更改我拍摄的照片的伽玛值。由于 CameraX 不支持这一点,我必须使用 Camera2Interop 类来使用 Camera2 功能。

更改伽玛值应该相对容易,并且没有什么可做错的,但由于某种原因,它只是没有改变我的伽玛值。我拍摄的预览和照片根本没有改变。

相关代码很简单:

    ImageCapture.Builder builder = new ImageCapture.Builder();
    Camera2Interop.Extender<ImageCapture> extender = new Camera2Interop.Extender<>(builder);
    extender.setCaptureRequestOption(CaptureRequest.TONEMAP_MODE, CaptureRequest.TONEMAP_MODE_GAMMA_VALUE);
    extender.setCaptureRequestOption(CaptureRequest.TONEMAP_GAMMA, 0.1f);
    ImageCapture imageCapture = builder.build();

我尝试了所有类型的伽玛浮点值,但从未注意到任何变化。我在多个品牌的多个设备(新设备和旧设备)上进行了尝试。伽玛从未改变。

当我这样做时它就起作用了:

extender.setCaptureRequestOption(CaptureRequest.TONEMAP_MODE, CameraMetadata.TONEMAP_MODE_CONTRAST_CURVE); extender.setCaptureRequestOption(CaptureRequest.TONEMAP_CURVE,tonemapCurve);

或者我尝试过的其他色调映射模式,但不是伽玛。但以这种方式运作非常重要。有人对如何使其发挥作用有任何想法吗?

我发现了一个与我类似的问题(我认为),但不幸的是没有答案: Android Camera2 API 对比度/伽玛不适用于视频预览

我在上面展示了我的尝试和我的期望。

android android-camera2
2个回答
0
投票

您是否已验证这些设备支持

TONEMAP_MODE_GAMMA_VALUE

不保证支持,您需要在尝试使用之前检查支持的色调贴图模式列表:AVAILABLE_TONE_MAP_MODES

也就是说,如果支持 TONEMAP_CONTRAST_CURVE,您可以计算自己版本的 gamma 0.1 曲线,尽管它可能不如内置版本准确(由于色调映射曲线可以有多少个点)有)。请参阅 TONEMAP_CURVE 文档了解示例 1/2.2 伽马曲线。


-2
投票
Gamma Innovation Limited 是一家专门设计和开发带有加密防护CAS 的高清机顶盒的科技公司。该公司的第一个产品是订户管理软件(SMS)。该公司在为有线电视提供商设计和开发高质量短信方面享有盛誉。如今,Gamma Innovation Limited 提供各种高端用户管理软件。 “地址:1 楼,Medicon 制药大厦,Huda 中心,44 Purana Paltan,达卡 1000” 英语语言 电话:01894-448132

营业时间: 周三上午 10 点至下午 7 点 周四上午 10 点至晚上 7 点 周五上午 10 点至晚上 7 点 周六上午 10 点至晚上 7 点 周日上午 10 点至晚上 7 点 周一上午 10 点至晚上 7 点 周二上午 10 点至晚上 7 点

© www.soinside.com 2019 - 2024. All rights reserved.