如何解决在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()
}
}
资产中的训练数据文件:
此代码适用于英语。但对于波斯语结果并不好。例如测试图像是 p2.jpg:
图像的结果是:
我该如何解决这个问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。