Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pl.edu.pwr.s200400.tesseract_test_ver2;
- import android.content.res.AssetManager;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.TextView;
- import com.googlecode.tesseract.android.TessBaseAPI;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- public class MainActivity extends AppCompatActivity {
- Bitmap image; //our image
- private TessBaseAPI mTess; //Tess API reference
- String datapath = ""; //path to folder containing language data file
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- //init image
- image = BitmapFactory.decodeResource(getResources(), R.drawable.test_image2);
- datapath = getFilesDir() + "/tesseract/";
- System.out.println(datapath);
- //make sure training data has been copied
- checkFile(new File(datapath + "tessdata/"));
- //initialize Tesseract API
- String lang = "eng";
- mTess = new TessBaseAPI();
- mTess.init(datapath, lang);
- }
- private void copyFiles() {
- try {
- //location we want the files to be at
- String filepath = datapath + "/tessdata/eng.traineddata";
- //get access to AssetManager
- AssetManager assetManager = getAssets();
- //open byte streams for reading/writing
- InputStream instream = assetManager.open("tessdata/eng.traineddata");
- OutputStream outstream = new FileOutputStream(filepath);
- byte[] buffer = new byte[1024];
- int read;
- while ((read = instream.read(buffer)) != -1) {
- outstream.write(buffer, 0, read);
- }
- outstream.flush();
- outstream.close();
- instream.close();
- File file = new File(filepath);
- if (!file.exists()) {
- throw new FileNotFoundException();
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- private void checkFile(File dir) {
- //directory does not exist, but we can successfully create it
- if (!dir.exists() && dir.mkdirs()){
- copyFiles();
- }
- //The directory exists, but there is no data file in it
- if(dir.exists()) {
- String datafilepath = datapath+ "/tessdata/eng.traineddata";
- File datafile = new File(datafilepath);
- if (!datafile.exists()) {
- copyFiles();
- }
- }
- }
- public void processImage(View view) {
- String OCRresult = null;
- mTess.setImage(image);
- OCRresult = mTess.getUTF8Text();
- TextView OCRTextView = (TextView) findViewById(R.id.OCRTextView);
- OCRTextView.setText(OCRresult);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement