หลังจากที่เราได้พูดถึงการ Build Library OCR ไปแล้ว วันนี้เราจะมาพูดถึงการนำไปใช้ และตัวอย่าง Code นะคะ
1. สร้าง Project ใหม่
2. คลิกขวาที่ Project ที่สร้างขึ้นมา เลือก Properties
อันนี้จะเป็นการนำ ไลบรารี่มาใช้ ต่อไปมาลองเขียนโค้ดกัน
ลองมาเขียนโค้ดกันดูนะคะ
1. นี่จะเป็นหน้าตาคร่าวๆ ของ Layout นะคะ
*ก็จะมี Button ImageView แล้วก็ TextView
Code ของ Layout main.xml คร่าวๆ
2. โหลด tainned data จาก Tesseract tainned data (เลือกภาษาที่ต้องการ) โหลดมาแล้วแตกไฟล์ จากนั้น Copy Folder นั้นใส่ SDCARD
3. ส่วนนี่จะเป็นส่วนของ Code
public class Main extends Activity {
ImageView image1;
Bitmap bit;
String tag = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String mRelativeFolderPath = "/ชื่อโฟลเดอร์ที่เก็บภาพ/";
String mBaseFolderPath = Environment.getExternalStorageDirectory().getAbsolutePath() + mRelativeFolderPath;
String filePath = mBaseFolderPath + "ชื่อภาพ.jpg";
image1 = (ImageView)findViewById(R.id.imageView1);
bit = BitmapFactory.decodeFile(filePath);
image1.setImageBitmap(bit);
Button button = (Button)findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
TessBaseAPI baseApi = new TessBaseAPI();
String pathFolder = "/ชื่อโฟลเดอร์ที่มีไฟล์ tainned data/";
String Path = Environment.getExternalStorageDirectory().getAbsolutePath() + pathFolder;
baseApi.init(Path , "lang");
baseApi.setImage(bit);
String text = baseApi.getUTF8Text();
TextView txt = (TextView)findViewById(R.id.textView1);
txt.setText(text);
Toast.makeText(Main.this, text,Toast.LENGTH_LONG ).show();
baseApi.end();
}
});
}
}
*ส่วน Manifest ไม่มีอะไรเปลี่ยนแปลง
public class Main extends Activity {
ImageView image1;
Bitmap bit;
String tag = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String mRelativeFolderPath = "/ชื่อโฟลเดอร์ที่เก็บภาพ/";
String mBaseFolderPath = Environment.getExternalStorageDirectory().getAbsolutePath() + mRelativeFolderPath;
String filePath = mBaseFolderPath + "ชื่อภาพ.jpg";
image1 = (ImageView)findViewById(R.id.imageView1);
bit = BitmapFactory.decodeFile(filePath);
image1.setImageBitmap(bit);
Button button = (Button)findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
TessBaseAPI baseApi = new TessBaseAPI();
String pathFolder = "/ชื่อโฟลเดอร์ที่มีไฟล์ tainned data/";
String Path = Environment.getExternalStorageDirectory().getAbsolutePath() + pathFolder;
baseApi.init(Path , "lang");
baseApi.setImage(bit);
String text = baseApi.getUTF8Text();
TextView txt = (TextView)findViewById(R.id.textView1);
txt.setText(text);
Toast.makeText(Main.this, text,Toast.LENGTH_LONG ).show();
baseApi.end();
}
});
}
}
*ส่วน Manifest ไม่มีอะไรเปลี่ยนแปลง
หมายเหตุุ datapath นี้สำหรับ android API(จำไม่ได้ แหะๆ ) ขึ้นไปจะใช้ Environment.getExternalStorageDirectory() ถ้าต่ำกว่านั้นสามารถใช้ baseApi.init("/mnt/sdcard/tesseract/", "eng"); ได้
ศึกษาเรื่อง Directory เพิ่มเติม http://developer.android.com/reference/android/os/Environment.html
ไม่มีความคิดเห็น:
แสดงความคิดเห็น