如何将一个图像令牌与相机与存储在SD卡中的所有其他图像进行比较并显示结果?
public class SearchForFaces extends Activity {
Bitmap bitmapOriginale;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle b1 = getIntent().getExtras();
String cin= b1.getString("cin");
//getting the image
File sdCard = Environment.getExternalStorageDirectory();
File directory = new File (sdCard.getAbsolutePath() + "/Student");
File file = new File(directory, cin+"jpg");
try {
FileInputStream streamIn = new FileInputStream(file);
bitmapOriginale = BitmapFactory.decodeStream(streamIn);
streamIn.close();
} catch (IOException e) {
Log.d("SearchForFaces Exception", e.getMessage());
}
if(bitmapOriginale.sameAs(//images from sdcard))
{
//display founded image
}
}
}
答案 0 :(得分:0)
同时查看此博客http://mihaifonoage.blogspot.com/2009/09/displaying-images-from-sd-card-in.html它显示了如何从SD卡读取图像。一旦你阅读它们,你可以使用sameAs()编写的方法来比较它们。
答案 1 :(得分:0)
我认为,它没有必要读取所有图像..如果你想比较来自相机的图像,你可以“轻松”拍摄DCMI文件夹中的图像。但是好的,用户会将一些文件移动到另一个文件夹中。所以在这种情况下我会建议只打开第一个文件夹,在那里读取文件并检查格式,然后再打开另一个文件夹,在那里读取文件,再次检查格式并保存jpg文件的路径。
所以在这种情况下只需要一些简单的东西,foreach,而cykl或者你可以用递归来做。
你将有一些ArrayList(linkedList,无论如何),在这个列表中你可以放置路径。然后只需调用你的sameAs方法
在此,您可以使用Environment.getExternalStorageDirectory().listFiles();
但是......我不确定你的“算法”是否会起作用..图像识别是计算机科学中非常困难的一部分......如果你不知道如何在SD卡上获取文件......算法可能不会起作用。 。
但是,如果你想逐字节比较检查相似性,那么它确定..