gpt4 book ai didi

java - 使用 OpenCV 获取 jpg 文件的路径以在 Android Studio 应用程序中制作 Mat

转载 作者:行者123 更新时间:2023-12-01 19:13:54 25 4
gpt4 key购买 nike

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

这是应该完成所有这些操作的 Activity 代码(到目前为止):

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 文件的操作方式,但我不知道该怎么做。有简单的方法吗?

最佳答案

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

文件.getAbsolutePath()

在您的 imread 方法中传递此返回

关于java - 使用 OpenCV 获取 jpg 文件的路径以在 Android Studio 应用程序中制作 Mat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59439984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com