((SOLVED)获取使用OpenCV在Android Studio应用中制作jpg的jpg文件的路径

问题描述 投票:0回答:1

我是绝对的新手,目前正在Android Studio中制作应用。我希望它能够拍摄条形码的照片,将其保存,使用OpenCV对其进行一些图像处理,然后使用Zxing对其进行解码。

这是到目前为止应该做的所有活动的代码:

public class Scan extends AppCompatActivity {

    private Uri file;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_scan);
        openCamera();
    }

    public void openCamera(){
        Intent intent_Camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        file = Uri.fromFile(getOutputMediaFile());
        intent_Camera.putExtra(MediaStore.EXTRA_OUTPUT, file);
        startActivityForResult(intent_Camera, 100);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == 100) {
            if (resultCode == RESULT_CANCELED) {
                finish();
            }
        }
    }

    private static File getOutputMediaFile(){
        File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_PICTURES), "MyApp");

        if (!mediaStorageDir.exists()){
            if (!mediaStorageDir.mkdirs()){
                return null;
            }
        }

        return new File(mediaStorageDir.getPath() + File.separator +
                "TEMP" + ".jpg");                                                        
    }

接下来,我想添加一种方法,该方法将从jpg文件中创建Mat,然后执行其他操作,到目前为止,它看起来像这样:

public static String decodePic(){
        Imgcodecs imageCodecs = new Imgcodecs();
        String file ="???";
        Mat matPic = imageCodecs.imread(file);

尽管我不知道如何以“智能”方式获取jpg的路径。我可以用它在手机中的实际位置代替???插入它的实际路径,但是我很确定它对于不同的手机可能会有所不同。我曾考虑过对其进行一些更改,并采取与mediaStorageDir File相似的方式进行操作,但是我不知道该如何做。有简单的方法吗?

java android opencv path jpeg
1个回答
0
投票

从您的getOutputMediaFile()方法获取文件的对象并使用上面的命令。

file.getAbsolutePath()

将此返回值传递给您的未读方法

© www.soinside.com 2019 - 2024. All rights reserved.