Я новичок в разработке Android. Я использую Xamarin.Предварительный просмотр камеры и OCR
Я пытаюсь написать приложение, которое инициирует предварительный просмотр камеры, а затем постоянно сканирует входящие кадры для текста (я использую Xamarin.Tesseract от NuGet).
Другими словами, я не хочу, чтобы пользователь сделал фотографию, а затем выполнил анализ OCR, вместо этого я хочу, чтобы они просто указали на видеокамеру на какой-то бумаге с текстом на ней, я буду постоянно делать анализ OCR, пока я не обнаружу конкретный текст, который я ищу), в этот момент я дам большие пальцы для пользователя.
Это подход, который я пошел вниз до сих пор:
Initialise камеру и установить предварительного обратного вызова
_Camera = Android.Hardware.Camera.Open(); _Camera.SetPreviewCallback(this); _Camera.StartPreview();
В Обратного, возьмите байты, представляющие текущий кадр и передать это как байты входного изображения для Xamarin.Tesseract
public void OnPreviewFrame(byte[] data, Android.Hardware.Camera camera) { await _TesseractApi.SetImage(data); /// this hangs string text = _Api.Text; return text; }
В настоящее время он висит при передаче байта [] в Tesseract API. Я уверен, что это произойдет потому, что байты в массиве - это неправильная кодировка, или я принципиально не понимаю Camera api!
Может ли кто-нибудь дать мне толчок в направлении записи?
это выглядит как Android возвращает необработанное изображение для камеры в обратном вызове, и я ожидаю, что Tesseract работает с конкретными форматами – Jason
изображения Как вы этого достигли, не имея проблемы с памятью? Я сейчас делаю то же самое, но застрял в данный момент – DrPatience