Segmentation 接口介绍

背景抠图检测器,回吐单通道Mask图。目前只支持单人抠图

0.1. 构造方法

  • 同步构造方法

    Segmentation segmentation = (Segmentation) CVCenter.getInstance().syncNewDetector(DetectorConstance.DETECTOR_TYPE_SEGMENT);
    
  • 异步构造方法

     CVCenter.getInstance().asyncNewDetector(DetectorConstance.DETECTOR_TYPE_SEGMENT, new DetectorListener.OnDetectorCreatedListener() {
                @Override
                public void onCreated(int type, Object detector) {
                    Log.d(TAG, "onCreated: " + type + "," + detector);
                    Segmentation segmentation = (Segmentation) detector;
    
                }
    
                @Override
                public void onFailed(String msg) {
                    Log.e(TAG, "onFailed: " + msg);
    
                }
            });
    

0.2. 检测方法

  • 抠图接口
MMFrame mmcvFrame = new MMFrame();
SegmentationInfo segmentationInfo = new SegmentationInfo();
mmcvFrame.setFormat(MMFrame.MMFormat.FMT_NV21);
mmcvFrame.setDataPtr(data);//data为相机或者图片数据
mmcvFrame.setDataLen(data.length);//数据的大小
mmcvFrame.setWidth(width);//图片宽度
mmcvFrame.setHeight(height);//图片高度
mmcvFrame.setStep_(width);//步距,在nv21模式下,等于宽度的值
SegmentationParams params = new SegmentationParams();
params.setFlipedShow(isFrontCamera);//前置摄像头的话,需要翻转
params.setRotateDegree(rotateDegree);//图片旋转角度
params.setRestoreDegree(restoreDegree);//相机安装角度
segmentation.ProcessFrame(mmFrame, segmentationParams, segmentationInfo);

0.3. SegmentationInfo 抠图遮罩数据

  • 遮罩图二进制数据

    public class SegmentationInfo {
        public byte[] mask_;
    }
    

0.4. 重制

  • 重制检测器(视频检测与静态图检测互切时候需要调用,其他无需调用)
segmentation.Reset();

0.5. 释放

Segmentation.Release();
@Copyright © cosmos 2019 all right reserved,powered by Gitbook修订时间: 2019-05-31 10:17:01

results matching ""

    No results matching ""