使用相机拍摄自定义图像尺寸或裁剪

时间:2018-03-05 11:12:57

标签: android android-camera ocr crop

我正在开发OCR系统,需要捕获图像并进行OCR,我想捕获部分文件(确切意图文本在哪里)或裁剪捕获的图像,然后再将其传递给OCR处理以获得更好的效果。

我试过下面的代码,但是我不能把它作为我试图存档的东西,因为我是android java的初学者

private void startCameraActivity() {
    try {
        String IMGS_PATH = Environment.getExternalStorageDirectory().toString() + "/ocr/imgs";
        prepareDirectory(IMGS_PATH);

        String img_path = IMGS_PATH + "/ocr.jpg";

        outputFileUri = Uri.fromFile(new File(img_path));

        final Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
        takePictureIntent.putExtra("crop", "true");
        takePictureIntent.putExtra("scale", true);
        takePictureIntent.putExtra("aspectX", 1);
        takePictureIntent.putExtra("aspectY", 1);

        takePictureIntent.putExtra("outputX", 150);
        takePictureIntent.putExtra("outputY", 100);

        if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
            startActivityForResult(takePictureIntent, PHOTO_REQUEST_CODE);
        }

    } catch (Exception e) {
        Log.e(TAG, e.getMessage());
    }
}

@Override
public void onActivityResult(int requestCode, int resultCode,
                             Intent data) {
    //making photo
    if (requestCode == PHOTO_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
        doOCR();
    } else {
        Toast.makeText(this, "ERROR: Image was not obtained.", Toast.LENGTH_SHORT).show();
    }
}

private void doOCR() {
    prepareTesseract();
    startOCR(outputFileUri);
}

有人帮助我,谢谢。

注意

takePictureIntent.putExtra("crop", "true");
takePictureIntent.putExtra("scale", true);
takePictureIntent.putExtra("aspectX", 1);
takePictureIntent.putExtra("aspectY", 1);

takePictureIntent.putExtra("outputX", 150);
takePictureIntent.putExtra("outputY", 100);

清除我的缓存后,我注意到上面的代码正在打开完整操作应用程序,可以裁剪图片,现在一切正常。

感谢。

0 个答案:

没有答案