Несколько вопросов по работе со сканами на андроиде?
Пожалуйста, поделитесь информацией полезной для реализации фотосканера.
В простейшем случае получается такая цепочка : Установи CamScaner - сканируй - распечатай.
Посмотрим подробнее что делает Camscaner
1) снимок
2) поиск углов
3) обрезка с исправлением перспективы
4) очистка от шума
при необходимости повторить 1-4
5) генерация pdf (обычно одно фото на листе)
6) поделиться или вызвать адаптер печати
По пунктам
1) Сделать снимок можно как в режиме "Живой камеры", так и на минималках (просто обратиться к операционке, что тебе нужна фотография с камеры, которую нужно записать в созданный тобой content)
На практике где-то меньше 50 строк кода, это вместе с манифестом и прочим.
2) Поиск углов. Не нашел решений без использования OpenCV. А если включить в проект, то сразу распухает на десятки мегабайт :(
3) Есть ли готовые кроперы с исправлением перспективы в виде сдк ?
4) Без бакендов , без использования машинного зрения. Идеально чтобы апач или мит лицензия. Есть такое ?
5) Можно и без всяких библиотек сделать. Там буквально 300 строк кода. Заголовок файла. trailer. xref. и собрать страницы.
6) Элементарно
Дополнительно:
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для работы со сканами на Android у вас могут возникнуть несколько вопросов, такие как как захватить изображение с камеры, как обработать изображение после сканирования, как сохранить скан в памяти устройства и другие. В этом ответе я постараюсь рассмотреть основные аспекты работы со сканами на Android.
1. Захват изображения с камеры:
Для захвата изображения с камеры на Android вы можете использовать стандартный Intent для запуска камеры и получения изображения. Вот пример кода на языке программирования Java:
private static final int REQUEST_IMAGE_CAPTURE = 1; private void dispatchTakePictureIntent() { Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (takePictureIntent.resolveActivity(getPackageManager()) != null) { startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Bundle extras = data.getExtras(); Bitmap imageBitmap = (Bitmap) extras.get("data"); // Далее можно использовать полученное изображение } }
2. Обработка изображения после сканирования:
После получения изображения с камеры, вы можете обработать его с помощью различных библиотек для работы с изображениями. Например, вы можете использовать OpenCV для обработки изображений. Вот пример кода на языке программирования Java:
Mat image = Imgcodecs.imread("path/to/image.jpg"); // Далее можно проводить обработку изображения
3. Сохранение скана в памяти устройства:
Для сохранения скана в памяти устройства вы можете использовать внутреннее хранилище приложения или внешнее хранилище, такое как SD-карта. Вот пример кода на языке программирования Java:
String path = Environment.getExternalStorageDirectory().toString(); File file = new File(path, "scan.jpg"); try { FileOutputStream out = new FileOutputStream(file); imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); }
Надеюсь, эти примеры помогут вам разобраться с основными аспектами работы со сканами на Android. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.