quiero usar tesseract.js libaray para reconocer una cadena como ("رقم العداد") y alertar al número que está escrito después de la cadena como (7038842 رقم العداد) << como puede ver, quiero alertar al número después de la cadena de una imagen png y copie otro número de la imagen ("نقطة الخدمة") esto es lo que he intentado y funciona bien si la cadena [text.match] era [القراءة] pero si la cambio a ("رقم العداد") o ("نقطة الخدمة") no aparece ninguna alerta y me da este error en la consola
No capturado (en promesa) TypeError: no se pueden leer las propiedades de nulo (leyendo '1') en (índice): 25:63
código:-
Tesseract.recognize( 'Uff.png', 'ara', { logger: m => console.log(m) } ).then(({ data: { text } }) => { var number = 'رقم العداد'; or /*'نقطة الخدمة'*/ var result = text.match(new RegExp(number + '\\s+(\\w+)'))[1]; alert(result); }) </script>Después de algunas pruebas y observaciones del mismo problema en Jsfiddle . Es el lugar donde puedo decir que su problema es con el texto detectado donde el teseracto no detecta algunas letras árabes tal como son.
Para resolver esto, debe asegurarse de la salida de cadenas y usar la misma cadena para obtener sus números.
Por ejemplo, en el ejemplo anterior, tenía la intención de obtener el número después de hacer coincidir la cadena
معرف العقار pero tesseract no da la misma cadena. Más bien, da محر العفار , por lo que en tal caso debe filtrar con respecto a esto y no al texto correcto.
var number = 'محر العفار'; var res = text.match(new RegExp(number + '\\s+(\\w+)'))[1];Esta es la imagen en la web que estoy probando image