微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在android编程中使用tesseract

如何解决在android编程中使用tesseract

我想为 TextRecogniization 创建一个应用程序。我添加了 tess-two 依赖项以使用 tesseract

build.gradle:

dependencies {
...
implementation 'com.rmtheis:tess-two:9.1.0'
...
}

MainActivity.kt:

import android.os.Bundle
import android.os.Environment
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.core.graphics.drawable.toBitmap
import com.googlecode.tesseract.android.TessBaseAPI
import java.io.File
import java.io.FileOutputStream


class MainActivity : AppCompatActivity() {
private lateinit var DATA_PATH:String

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    DATA_PATH=getExternalFilesDir(Environment.DIRECTORY_DCIM)?.path+File.separator
    val d=File(DATA_PATH+"tessdata")
    if (!d.exists()) d.mkdir()
    val assetFiles=assets.list("")
    for (fileName in assetFiles!!){
        val file=File(DATA_PATH+"tessdata"+File.separator+fileName)
        if (!file.exists()&&fileName.contains("traineddata")) {
            val oup = FileOutputStream(file)
            val asset_file = assets.open(fileName)
            var buffer= ByteArray(1024)
            var len =asset_file.read(buffer)
            while (len>0){
                oup.write(buffer,len)
                len =asset_file.read(buffer)
            }
            oup.flush()
            oup.close()
        }
    }

    val bitmap=ContextCompat.getDrawable(this,R.drawable.p2)!!.toBitmap()

    val tessBaseAPI=TessBaseAPI()
    val thread=Thread {
        tessBaseAPI.init(DATA_PATH,"fas")
        tessBaseAPI.setimage(bitmap)
        val text = tessBaseAPI.utF8Text
        Log.i("___",text)
    }
    thread.start()
}
}

资产中的训练数据文件

enter image description here

代码适用于英语。但对于波斯语结果并不好。例如测试图像是 p2.jpg:

enter image description here

图像的结果是:

enter image description here

我该如何解决这个问题?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。