Imagen umbral con opencv (Java)
Estoy trabajando con Opencv para mi proyecto. Necesito convertir la imagen de abajo a la imagen de umbral
- Mejor ejemplo de OCR (reconocimiento óptico de caracteres) en android
- Android OCR utilizando tess-dos un tenedor de tesseract
- ¿Cómo entrenar a tesseract para reconocer números de 20 a 30 dígitos solamente?
- El proyecto no se creó debido a "No se pudo eliminar" / tesseract-android-tools / bin / classes / com en Linux
- Números digitales en Tesseract OCR
He intentado esta función:
Imgproc.threshold(imgGray, imgThreshold, 0, 255, Imgproc.THRESH_BINARY + Imgproc.THRESH_OTSU);
Pero el resultado no fue tan bueno, como ves a continuación
Así que probé la adaptiveThreshold function
:
Imgproc.adaptiveThreshold(imgGray, imgThreshold, 255, Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C, Imgproc.THRESH_BINARY, 11, 2);
Y resultó:
Sólo espero una imagen binaria con fondo blanco y texto en negro solamente, sin área negra o ruido (no prefiero usar Photo.fastNlMeansDenoising
porque se necesita mucho tiempo). Por favor, ayúdame con una solución para esto.
Además, estoy usando Tesseract
para el reconocimiento japonés, pero la tasa de precisión no es buena. ¿Tiene alguna sugerencia sobre mejor OCR para japonés, o cualquier método para mejorar la calidad Tesseract?
- Android Tesseract progreso de devolución de llamada
- Diccionario personalizado para Tesseract
- Error android ndk-build
- Tesseract OCR Android tessdata directorio no encontrado
- Incluyendo Tess4J a un proyecto Java como biblioteca en Eclipse
- Android: cómo reconocer códigos MICR
- Leptonica para mejorar tesseract ocr en android
- Android NDK - construcción de TessTwo (Fork de Tesseract Tools para Android) - ndk-build falla
adaptiveThreshold
es la elección correcta aquí. Sólo necesitas un poco de afinación . Con estos parámetros (es C + +, pero se puede traducir fácilmente a Java)
Mat1b gray= imread("path_to_image", IMREAD_GRAYSCALE); Mat1b result; adaptiveThreshold(gray, result, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, 40);
La imagen resultante es:
- ¿Cómo actualizar una base de datos SQLite y NO perder todos los datos existentes?
- NullPointerExeption con AppCompat BottomSheets