У меня есть приложение Jave Android, в котором я использовал ML Kit и Camerax для чтения QR -кода с помощью фронтальной камеры, когда я использую камеру задних камер, все работают нормально, но когда я использую фронтальную камеру, я столкнулся с некоторыми трудностями для чтения QR, и даже если он успех дает мне неправильное значение.private void startCamera() {
BarcodeScannerOptions options =
new BarcodeScannerOptions.Builder()
.setBarcodeFormats(
Barcode.FORMAT_ALL_FORMATS
)
.build();
scanner = BarcodeScanning.getClient(options);
ListenableFuture cameraProviderFuture =
ProcessCameraProvider.getInstance(this);
cameraProviderFuture.addListener(() -> {
try {
ProcessCameraProvider cameraProvider = cameraProviderFuture.get();
Preview preview = new Preview.Builder().build();
preview.setSurfaceProvider(previewView.getSurfaceProvider());
ImageAnalysis imageAnalysis =
new ImageAnalysis.Builder()
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.build();
imageAnalysis.setAnalyzer(ContextCompat.getMainExecutor(this), imageProxy -> {
Image mediaImage = imageProxy.getImage();
if (mediaImage != null && !isScanned) {
InputImage image = InputImage.fromMediaImage(
mediaImage,
imageProxy.getImageInfo().getRotationDegrees());
scanner.process(image)
.addOnSuccessListener(barcodes -> {
if (!barcodes.isEmpty()) {
isScanned = true;
String rawValue = barcodes.get(0).getRawValue();
Log.d("MLKit", "Scanned: " + rawValue);
Toast.makeText(this, "Scanned: " + rawValue, Toast.LENGTH_SHORT).show();
scanner.close();
startActivity(new Intent(this, DirectionActivity.class));
finish();
}
})
.addOnFailureListener(e -> Log.e("MLKit", "Scan failed: " + e.getMessage()))
.addOnCompleteListener(task -> imageProxy.close());
} else {
imageProxy.close();
}
});
CameraSelector cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA;
cameraProvider.unbindAll();
cameraProvider.bindToLifecycle(this, cameraSelector, preview, imageAnalysis);
} catch (Exception e) {
Log.e("MLKit", "Camera Init Failed", e);
}
}, ContextCompat.getMainExecutor(this));
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... and-camerx
Чтение штрих -кодов с помощью фронтальной камеры с ML Kit и Camerx ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1751130058
Anonymous
У меня есть приложение Jave Android, в котором я использовал ML Kit и Camerax для чтения QR -кода с помощью фронтальной камеры, когда я использую камеру задних камер, все работают нормально, но когда я использую фронтальную камеру, я столкнулся с некоторыми трудностями для чтения QR, и даже если он успех дает мне неправильное значение.private void startCamera() {
BarcodeScannerOptions options =
new BarcodeScannerOptions.Builder()
.setBarcodeFormats(
Barcode.FORMAT_ALL_FORMATS
)
.build();
scanner = BarcodeScanning.getClient(options);
ListenableFuture cameraProviderFuture =
ProcessCameraProvider.getInstance(this);
cameraProviderFuture.addListener(() -> {
try {
ProcessCameraProvider cameraProvider = cameraProviderFuture.get();
Preview preview = new Preview.Builder().build();
preview.setSurfaceProvider(previewView.getSurfaceProvider());
ImageAnalysis imageAnalysis =
new ImageAnalysis.Builder()
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.build();
imageAnalysis.setAnalyzer(ContextCompat.getMainExecutor(this), imageProxy -> {
Image mediaImage = imageProxy.getImage();
if (mediaImage != null && !isScanned) {
InputImage image = InputImage.fromMediaImage(
mediaImage,
imageProxy.getImageInfo().getRotationDegrees());
scanner.process(image)
.addOnSuccessListener(barcodes -> {
if (!barcodes.isEmpty()) {
isScanned = true;
String rawValue = barcodes.get(0).getRawValue();
Log.d("MLKit", "Scanned: " + rawValue);
Toast.makeText(this, "Scanned: " + rawValue, Toast.LENGTH_SHORT).show();
scanner.close();
startActivity(new Intent(this, DirectionActivity.class));
finish();
}
})
.addOnFailureListener(e -> Log.e("MLKit", "Scan failed: " + e.getMessage()))
.addOnCompleteListener(task -> imageProxy.close());
} else {
imageProxy.close();
}
});
CameraSelector cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA;
cameraProvider.unbindAll();
cameraProvider.bindToLifecycle(this, cameraSelector, preview, imageAnalysis);
} catch (Exception e) {
Log.e("MLKit", "Camera Init Failed", e);
}
}, ContextCompat.getMainExecutor(this));
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79683179/reading-barcodes-using-front-camera-with-ml-kit-and-camerx[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия