Java OCR数字识别(谷歌视觉)
我必须创建一个数独解算器,所以我用google vision创建了一个数字识别,从网格中检索数字。这个数字识别修剪网格以分析每个单元格,但识别不起作用。。我认为问题来自文本识别器,它无法识别单个字符 你能帮我吗 谢谢Java OCR数字识别(谷歌视觉),java,android,android-studio,google-vision,android-applicationinfo,Java,Android,Android Studio,Google Vision,Android Applicationinfo,我必须创建一个数独解算器,所以我用google vision创建了一个数字识别,从网格中检索数字。这个数字识别修剪网格以分析每个单元格,但识别不起作用。。我认为问题来自文本识别器,它无法识别单个字符 你能帮我吗 谢谢 btnProcess.setOnClickListener(new View.OnClickListener() { @Override public void onClick(final View v) { new
btnProcess.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
new Thread(new Runnable() {
public void run() {
final StringBuilder stringBuilder = new StringBuilder();
TextRecognizer textRecognizer=new TextRecognizer.Builder(getApplicationContext()).build();
if(!textRecognizer.isOperational()){
Log.e("Error","Detector not available");
}
else {
int largeur = (bitmap.getWidth()) / 9;
int hauteur = (bitmap.getHeight()) / 9;
Bitmap cellule = null;
for (int y = 0; y< 9; y++) {
for (int x = 0; x < 9; x++) {
cellule = Bitmap.createBitmap(bitmap,x*largeur,y*hauteur,largeur,hauteur);
Frame frame = new Frame.Builder().setBitmap(cellule).build();
cellule.recycle();
SparseArray<TextBlock> items = textRecognizer.detect(frame);
if (items.size()==0){
stringBuilder.append("0" + " ");
}
else{
TextBlock item=items.valueAt(0);
stringBuilder.append(item.getValue() + " ");
}
}
stringBuilder.append("\n");
}
}
runOnUiThread(new Runnable() {
public void run() {
txtResult.setText(stringBuilder.toString());
}
});
}
}).start();
};
});
btnProcess.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(最终视图v){
新线程(newrunnable()){
公开募捐{
最终StringBuilder StringBuilder=新StringBuilder();
TextRecognizer TextRecognizer=新的TextRecognizer.Builder(getApplicationContext()).build();
如果(!textRecognitor.isOperational()){
日志e(“错误”,“检测器不可用”);
}
否则{
int largeur=(bitmap.getWidth())/9;
int hauteur=(bitmap.getHeight())/9;
位图单元=空;
对于(int y=0;y<9;y++){
对于(int x=0;x<9;x++){
cellule=Bitmap.createBitmap(位图,x*largeur,y*hauteur,largeur,hauteur);
Frame Frame=new Frame.Builder().setbit映射(cellle.build();
细胞循环();
SparseArray项目=文本识别器。检测(帧);
如果(items.size()==0){
追加(“0”+”);
}
否则{
TextBlock item=items.valueAt(0);
stringBuilder.append(item.getValue()+);
}
}
stringBuilder.append(“\n”);
}
}
runOnUiThread(新的Runnable(){
公开募捐{
setText(stringBuilder.toString());
}
});
}
}).start();
};
});