项目中遇到各种失真,例如图片变绿,图片曝光严重,出现两个图片拼接的情况,这些问题都是偶然的,有些手机可能遇到的比较频繁,例如有个用户使用的是SM-G3502C手机,拼接图片频繁。但其他用户使用的这款手机木有问题。。。哪位大侠遇到过这些问题,快点给我留言呀,单身的英雄,我给你介绍个美丽的妹子。
下面是论坛上其他朋友的分析,但应用层我的apk中貌似没法操作系统camera中cpp的内容。有知道如何操作的分享一下,介绍妹子噢(*^__^*)
http://bbs.csdn.net/topics/390252674
问题: 有没有谁对Android Camera 应用熟悉, Android 原生Camera 应用的全景预览画面有点失真, 颜色偏亮;比如, 深绿色的叶子, 在画面上是浅绿色, 好像覆盖一层亮白, 谁解决了?
建议:我碰到过, 这个是原生方案采用的参数不恰当导致的。
全景图像数据的处理是使用OpenGL 处理的, 你可以看下 Camea apk的 jni部分的源码, 找到文件:
jni/feature_mos/src/mosaic_renderer/YVURenderer.cpp
找到 成员函数 FragmentShaderSource()的定义, 该函数内部采用的从 RGBA 格式转YUV格式的矩阵参数选择不恰当, 如果你对相关 知识熟悉的话, 应该知道是有两组可选参数的, 分别用在静态图像和动态视频中。
相关转换知识请参考: http://www.fourcc.org/fccyvrgb.php
第一组:
Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16
Cr = V = (0.439 * R) - (0.368 * G) - (0.071 * B) + 128
Cb = U = -(0.148 * R) - (0.291 * G) + (0.439 * B) + 128
这是原生 camera 采用的这一种, 是不恰当的, 而且存在错误, 请看如下实际代码:
"const vec4 coeff_y = vec4(0.257, 0.594, 0.098, 0.063);\n"
"const vec4 coeff_v = vec4(0.439, -0.368, -0.071, 0.500);\n"
"const vec4 coeff_u = vec4(-0.148, -0.291, 0.439, 0.500);\n"
请看每一个向量定义中最后一维的值, 如果RGBA中alpha分量不为255, 必然导致 转换公式中最后的常量部分值不对, 这是错误, 既然是常量, 就不应该收alpha分量影响。
第二组:
y = 0.299R+0.587G+0.114B
cr = 0.500R-0.419G-0.081B
cb = -0.169R-0.331G+0.500B
这个是修正方案, 你可以采用这个; 不过需要注意, 这个转换公式不带常数, 因此转换矩阵的最后一维都设为0即可。
修改后:
"const vec4 coeff_y = vec4(0.299, 0.587, 0.114, 0.0);\n"
"const vec4 coeff_v = vec4(0.500, -0.419, -0.081, 0.0);\n"
"const vec4 coeff_u = vec4(-0.169, -0.331, 0.500, 0.0);\n"
你可以试一下。
相关推荐
Android camera拍照流程图,里面分为三个文件文件夹,第一个是创建buffer同步 fence,第二个是拍照流程,第三个是拍照返回.
Android 开发 Camera拍照出现竖线,与硬件 cache 相关
因为工作中要使用 Android Camera2 API 来实现相机功能,但因为Camera2比较复杂,网上资料也比较乱,有一定入门门槛,所以花了几天时间系统研究了下,这个项目就是我研究的成果。 其中包括一个自己写的Camera2的Demo...
android camera的拍照小程序,运行后点击屏幕,选择按钮拍照
由于工作中需要用到Camera1,所以花了两天时间研究了以下,使用Android Camera1 API实现了相机预览、拍照和录制视频的功能。 资源中有个MyCamera1Demo.apk可以直接安装运行,MyCamera1Demo.zip是Demo源码。 具体详见...
我自己写的Android CameraX Demo,实现了预览/拍照/录制视频/图片分析/对焦/切换摄像头等操作。 具体详见我的博客 : https://blog.csdn.net/EthanCo/article/details/125603671
这是github的项目源码地址。Android Studio2.3.3调用系统的Camera实现拍照功能,并将照片保存到本地内存卡中
1.首先android6.0以上版本要动态申请相机和文件读写权限 2.废话不啰嗦,上代码: /** * 摄像头画面采集界面 */ public class DistinguishActivity extends BaseActivity implements SurfaceHolder.Callback, ...
使用android studio,用camera2实现拍照并能够实时预览,并将照片存到手机里,路径代码有注释。保存格式:fpg。实现全网最简便的代码。
在具体实现代码之前,我们先来了解一下Android api对实现自定义Camera的介绍。 根据api的介绍,对于Camera应用可以简单总结以下几个步骤。 1.检查Camera是否存在,并在AndroidManifest.xml中赋予相关的权限; 2....
Android11 适配,拍照问题。兼容Android11 targetSDk 31。有拍照功能和从相册选择图片,获取图片路径,保存图片。关联文章https://blog.csdn.net/u013778491/article/details/125638960
android相机拍照camera
Android下使用Camera硬件拍照Demo,详细参见博客:http://www.cnblogs.com/plokmju/p/android_Camera.html
在Camera2官方Demo的基础上修改,采用IntentService后台运行,实现定时无预览拍照。
android camera mirror 前置后置相机视频预览时左右镜像,实现镜子效果 基于以下网址实现的android studio项目源代码包,可以直接打开使用 https://blog.csdn.net/mbrose/article/details/80167781 代码做了一...
相册的图片选择和拍照,解决拍照后返回缩略图的问题。
NULL 博文链接:https://weixuanfeng.iteye.com/blog/1166353
主要介绍Android系统中原生的Camera应用如何进行拍照的,以及在自己使用Camera API时需要注意的问题
Android原生态拍照
主要为大家详细介绍了Android自定义Camera实现拍照功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下