2

I have to create a sudoku solver, so I create with google vision, a number recognition to retrieve numbers from the grid.This numbers recognition trim the grid to analyse each cell but the recognition doesn't work.. I think the problem comes from TextRecognizer who has trouble recognizing a single character.

Can you help me please?

Thanks.

    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();

        };
    });
Lasyvegasy
  • 31
  • 2

0 Answers0