2017-01-19 8 views
1

Я хочу захватить тексты и цифры, которые отображаются с помощью камеры, не снимая изображения с помощью tess-two (в android и eclipse). Я не хочу сохранять файл изображения.Android: Как захватить текст с камеры, не снимая изображения?

что-то вроде этого (это захват в прямом эфире на камеру):

OCR

Я использовал тесс-два, но я должен сделать снимок, а затем захватить текст. (используя ссылку: https://stackoverflow.com/questions/19533273/best-ocr-optical-character-recognition-example-in-android)

и я использовал это (https://www.codeproject.com/Articles/840623/Android-Character-Recognition), чтобы создать поведение, подобное картинке, которую я загрузил, но она тоже должна сфотографироваться.

так как я могу это достичь? Возможно ли это?

+0

Конечно. Используйте камеру api. Вы получите поток изображений, которые вы можете обрабатывать по своему усмотрению. Не нужно сохранять их в файл. – greenapps

+1

Тесс заставляет вас «сфотографировать сначала»? Что вы имеете в виду под «фотографией». Может ли только чтение из файла? Это то, что вы хотите сказать? Не из растрового изображения или так? Пожалуйста, будьте ясны. – greenapps

+0

tess хочет растровое изображение просто. –

ответ

0

Вы можете получить растровое изображение эскиза легко, как указано в документации Android here, но с вашего вопроса кажется, что вам понадобится полноразмерный растровый рисунок изображения, поэтому, чтобы получить растровое изображение полного размера, вы должны указать камеру на некоторый файл, в котором можно сохранить изображение захвата.

Чтобы получить полный размер растровый попробовать это

private String imagePath = ""; 

private void startCamera() { 
    // create a collision-resistant file name 
    String fileUniqueName= new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
    String imageFileName = fileUniqueName + ".jpg"; 

    File storageDir = Environment.getExternalStoragePublicDirectory(
     Environment.DIRECTORY_PICTURES); 
    imagePath = storageDir.getAbsolutePath() + "/" + imageFileName; 
    File file = new File(imagePath); 
    Uri outputFileUri = Uri.fromFile(file); 

    Intent cameraIntent = new  Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);    
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
    startActivityForResult(cameraIntent, 1); 
} 

Ручка захваченное изображение

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == 1) { 
     File tempFile = new File(imagePath); 
     if(tempFile.exists()){   
      Bitmap requiredBitmap = BitmapFactory.decodeFile(tempFile.getAbsolutePath()); 
     } 
    } 
} 

Это захваченное изображение не будет отображаться в галерее.

1

В качестве альтернативы, вы можете использовать бесплатный SDK, который делает OCR, без каких-либо картинок: ABBYY Real-time Recognition SDK. Он выполняет всю работу по созданию видеопотока для вас.

Отказ от ответственности: Я работаю для ABBYY.

+0

Доза нуждается в Интернете? Я имею в виду, что я должен быть привязан к интернету для его использования? –

+0

нет, все распознается на устройстве – Tomato

0

Перейти к этой ссылке YouTube: https://www.youtube.com/watch?v=xoTKpstv9f0

Это видео делает именно то, что вам нужно сделать.

Он использует API Google Vision для достижения распознавания текста. Вам вообще не нужно фотографировать. Поскольку он создан Google, он работает быстро и эффективно.

Надеюсь, это поможет!