-1

カメラ付きの1つの画像トークンを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
        }
    }
}
4

2 に答える 2

0

このブログもチェックしてくださいhttp://mihaifonoage.blogspot.com/2009/09/displaying-images-from-sd-card-in.htmlSDカードから画像を読み取る方法を示しています。それらを読んだら、sameAs()で記述されたメソッドを使用してそれらを比較できます。

于 2012-09-14T01:03:59.917 に答える
0

すべての画像を読む必要はないと思います。カメラからの画像を比較したい場合は、DCMIフォルダにある画像を「簡単に」撮ることができます。しかし、わかりました。ユーザーはいくつかのファイルを別のフォルダーに移動します。その場合は、最初のフォルダを開いて、そこにあるファイルを読んでフォーマットを確認し、その後、別のフォルダを開いて、そこにあるファイルを読んで、もう一度フォーマットを確認し、jpgファイルへのパスを保存することをお勧めします。
したがって、この場合、cyklを使用するか、再帰を使用して実行できますが、foreachは簡単です。いくつかのArrayList(linkedListなど)があり、このリストにパスを入れることができます。次に、sameAsメソッドを呼び出すだけです。
これであなたは使うことができますEnvironment.getExternalStorageDirectory().listFiles();

しかし、あなたの「アルゴリズム」が機能するかどうかはわかりません。画像認識はコンピュータサイエンスの非常に難しい部分です。SDカードでファイルを取得する方法がわからない場合、アルゴリズムはおそらく機能しません
。バイトごとの比較との類似性を確認したい場合は、それで問題ありません。

于 2012-09-14T01:36:38.923 に答える