Camera green picture

  • Post author:
  • Post category:其他



1. malloc error  关闭HDR ,在黑暗的环境下,连续拍照,出现绿图

E Metadata2/Entry: itemAt(531):Get data error , tag ffffffff, mContentPtr 0x0 
(itemAt){#531:vendor/mediatek/proprietary/hardware/mtkcam/utils/metadata/metadata/Entry.cpp}
W libc    : malloc(290897524) failed: returning null pointer
E ImageRefiner_jni: buffer malloc error : size = 290897524
D MorphoPhotoSolidFilter: sensor sensitivity : 6000, zoom value: 1.0
D MorphoPhotoSolidFilter: ISO interval mapped to 5600,6400, zoom_real: null
D MorphoPhotoSolidFilter: ISO 
D MorphoPhotoSolidFilter: srcparam.synth_ev_stop    0.0
D MorphoPhotoSolidFilter: srcparam.sharpness_enhancement_level    0

dump 进入算法前后的  YUV 数据,  查看是出图 问题还是 处理问题

算法初始化失败, 未处理数据, 数据中

@Override
public ResultImage processImage() {
     mImageRefiner.processImage(null);
     mImageRefiner.getResultImage(mOutYvuBytes.array());

     mOutYvuBytes ------- 未填充
     return new ResultImage(mOutYvuBytes, new Rect(0, 0, 0 + mWidth, mHeight), mWidth, mHeight, mStrideY);

}

1. reason:  多帧算法申请内存错误,未处理数据,outBytes 未填充数据导致的

2. solution: 算法申请内存错误,不保存错误的图片

3. influences: 不影响正常拍照和使用

4. R & D self-test: 挂测试脚本


2. singleboken + beauty 打开 前摄虚化模式,连续拍照,出现绿图(有影像)

1. reason:  beauty 只有输出 没有输入, 由于检测flag一直在动态的修改

2. solution:  在算法处理时,不修改人脸flag

3. influences:  不影响

4. R & D self-test: 挂测试脚本


dump数据, 查看beauty只有outYUV.yuv 没有 inYUV.yuv

在addimage()  processImage() 添加log , 分析log 只有out 没有 in

逻辑:在拍照时,虚化算法和美颜算法是使用,是需要看是否识别到人脸来判断的(face2View 动态修改 检测人脸的flag)。

addImage 时没有识别到人脸, processImage的时候识别到,就会从算法中取数据

modify: process 时候,不修改人脸标识flag

faceView.java

//update face
public void setFaces(Face[] faces, ExtendedFace[] extendedFaces) {

    setBlurShow(faces!=null);
}


SingleBokehCaptureModule.java

public void setBlurShow(boolean isShowBlur) {
       
    //---- if procrss , return -----
    if( mPostProcessor.getStartCapturing()){
            return;
    }
	//--------------------------------
      
	
    .....
	XXX.setBlur(isShowBlur)
	
PostProcessor.java
public boolean getStartCapturing(){
     return onStartCapturing;
}


3. 多帧合成错误绿图

1. reason:  多帧算法合成错误

2. solution:

低camera_motion_threshold的值(0.8->0.7),可规避此组输入的异常输出。

(camera_motion_threshold为合成图像的重叠比例,默认重叠80%以上才会合成)

或者app 根据 merge status 来判断是否合成成功, 查看是否保存异常照片

3. influences:黑暗条件不开闪光灯,点击拍照,立马移动手机, 导致5张输入YUV 不同,低概率出现此问题, 不影响正常拍照和使用

4. R & D self-test:修改完成后验证,拍照流程正常, 挂测试脚本



版权声明:本文为kongbaidepao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。