在Android上分类图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Android上分类图像相关的知识,希望对你有一定的参考价值。

我需要按文件夹对图像进行排序。例如可绘制/照片,可绘制/项目,可绘制/照片。并将每个文件夹放到注册表中,或者至少找到一种方法将它们从那里移出。我想要的只是类似于“ ../img/photos/photo0.jpg”的php。有没有办法做这样的事情。和包含图片的文件夹必须包含在apk文件中。

可能的解决方案是在R文件中建立链接,但我没有找到如何做的方法,其他解决方案是具有逻辑的find命令,如我将在此处显示的内容:

ImageView img = (ImageView)CloningTable.findViewById(R.id.img); 
String ImgPath = "com.test.test/img/img0.jpg";
img.setImageDrawable(Drawable.createFromPath(ImgPath));

OR

ImageView img = (ImageView)CloningTable.findViewById(R.id.img);
String ImgPath = "com.test.test/img/img0.jpg";
img.setImageResource(ImgPath);

请告诉我最好的处理方法。并指定它是否包含路径,使我知道文件所在的路径。

File ImgFile = new File("test/test.jpg");
TextView testtext = (TextView)CloningTable.findViewById(R.id.testtext);
if (ImgFile.exists()) 
    test.setImageBitmap(BitmapFactory.decodeFile(ImgFile.getPath()));
    testtext.setText("asdasuidjasdk");

谁能说为什么程序无法找到文件并且文件存在100%= /?

文件路径:Project>资产/test/test.jpg


找到的解决方案:Android Show image by path

答案

在这种情况下,您应该将资源放在资产文件夹中,并且可以通过路径访问它们!

因此,如果要保存路径字符串,最好的方法是创建一个类,该类具有2个变体:1个位图用于存储数据,而1个字符串用于存储路径。

如果不是,则创建一个可以在需要时访问的String数组。

在两种情况下,您都需要在加载图像之前将路径放入路径字符串存储中。

希望我理解您的问题。

编辑:满足您要求的最终答案:

没有可绘制的路径,它们都被转换为ID。如果放在资产文件夹中,只需按其名称命名。例如,资产文件夹中有“ Test.bmp”,其路径为“ Test.bmp”。如果资产文件夹的“ TestFolder”中有“ SubTest.bmp”,则其路径为“ TestFolder / SubTest.bmp”。抱歉,很长一段时间,我不得不睡觉,那是我所在时区的午夜。

另一答案

很难理解为什么您需要对APK中将为[[static的资源进行排序,但是您不应该使用路径直接使用路径,而应使用API​​来访问它们。

在此处查看开发指南中的主题:

http://developer.android.com/guide/topics/resources/accessing-resources.html

http://developer.android.com/guide/topics/resources/drawable-resource.html

这些将教您如何访问资源。要从它们创建位图,最简单的方法是使用BitmapFactory class

记住,您

知道

APK在构建时拥有哪些资源,因此您可以解决它。如果要使用在运行时创建的位图,请改用BitmapFactory

以上是关于在Android上分类图像的主要内容,如果未能解决你的问题,请参考以下文章

TensorFlow Android Camera Demo - 灰度图像分类

在Android上部署深度学习模型之Android NDK

Android 垃圾分类APP垃圾分类之图像输入

如何将张量流图像分类数据存储在Android应用程序的内部存储中?

如何在使用 tensorflow lite Android API 第一次正确图像检测后停止分类

这是Android中用于图像处理的最佳Camera API