1

tesseract の Java ラッパー tess4j を使用して、カメラから撮影した写真をテキストに変換するコードを次に示します。私はjarファイルを含めて、それらをパスに追加しました! コードは構文エラーを表示しません! デフォルトのカメラを起動して写真を撮り、宣言した画像ビューに表示されますが、OCRの結果が表示されるはずですが、編集ボックスは空に見えます!

package your.apnakaam.namespace;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.graphics.Bitmap;
import android.widget.ImageView;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.util.Log;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.io.File;
import java.io.File;
import net.sourceforge.tess4j.*;
public class KaamsekhaActivity extends Activity 
{
    private static final int CAMERA_REQUEST = 1888; 
        private ImageView imageView;
//**************************************************************************************************
private Intent data;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.main);
    setContentView(R.layout.apna_layout);
    Button capt_but = (Button)findViewById(R.id.capture_btn);
    this.imageView = (ImageView)this.findViewById(R.id.picture);

    capt_but.setOnClickListener(new View.OnClickListener()
    {
        //@Override
    // TODO Auto-generated method stub          
             public void onClick(View v)
             {
                 Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
                 startActivityForResult(cameraIntent, CAMERA_REQUEST); 
             }
    }); 
}
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {  
       if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) 
       {  
            Bitmap photo = (Bitmap) data.getExtras().get("data"); 
            imageView.setImageBitmap(photo);
            void myfunction()
       }  
    }
    public void myfunction()
    {
        TextView disp = (TextView)findViewById(R.id.editText1);
        File new_pic = (File) data.getExtras().get("data");
        Tesseract instance = Tesseract.getInstance(); // JNA Interface Mapping
        try 
        {   
            String result = instance.doOCR(new_pic);
            disp.setText(result);
        } 
        catch (TesseractException e)
        {
            System.err.println(e.getMessage());
        }
    }

}

コードの何が問題なのかわかりません!

4

1 に答える 1

1

関数 doOCR は、Android での作業中には不可能なバッファリングされた画像を取得します! Bufferedimage は、Android ではなく Java で使用される IIOimage を使用します。

于 2012-11-06T05:45:54.080 に答える