Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-使用OpenCV矩形检测获取自动裁剪位图_Java_Android_Opencv_Image Processing_Bitmap - Fatal编程技术网

Java Android-使用OpenCV矩形检测获取自动裁剪位图

Java Android-使用OpenCV矩形检测获取自动裁剪位图,java,android,opencv,image-processing,bitmap,Java,Android,Opencv,Image Processing,Bitmap,我使用OPENCV来检测银行支票,而相机开始预览,工作正常。 每当检测到矩形时,我都会从Mat数据中获取位图值,但我只希望有文档图像而不是整个帧位图(在矩形形式中检测到的部分),请指导我 提前表示感谢,如果出现格式错误,请道歉 参考文献: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_

我使用OPENCV来检测银行支票,而相机开始预览,工作正常。 每当检测到矩形时,我都会从Mat数据中获取位图值,但我只希望有文档图像而不是整个帧位图(在矩形形式中检测到的部分),请指导我

提前表示感谢,如果出现格式错误,请道歉

参考文献:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    CameraPreview cameraPreview = (CameraPreview) findViewById(R.id.camera_preview);
    cameraPreview.setCallback((data, camera) -> {
    CameraData cameraData = new CameraData();
    cameraData.data = data;
    cameraData.camera = camera;
    subject.onNext(cameraData);
    });
    cameraPreview.setOnClickListener(v -> cameraPreview.focus());
    DrawView drawView = (DrawView) findViewById(R.id.draw_layout);
    subject.concatMap(cameraData ->
    OpenCVHelper.getRgbMat(new MatData(), cameraData.data, cameraData.camera))
    .concatMap(matData -> OpenCVHelper.resize(matData, 400, 400))
    .map(matData -> {
    matData.resizeRatio = (float) matData.oriMat.height() / matData.resizeMat.height();
    matData.cameraRatio = (float) cameraPreview.getHeight() / matData.oriMat.height();
    return matData;
    })
    .concatMap(this::detectRect)
    .compose(mainAsync())
    .subscribe(matData -> {
    if (drawView != null) {
    if (matData.cameraPath != null) {
    drawView.setPath(matData.cameraPath);
    mat = matData.oriMat;
    bitmap = Bitmap.createBitmap(mat.width(), mat.height(), Bitmap.Config.ARGB_8888);
    } else {
    drawView.setPath(null);
    }
    drawView.invalidate();
    }
    });
    }