У меня есть пара маленьких изображений с одинарными цифрами, как эта: (кстати, само число прозрачно)
Но по какой-то причине Tesseract.js считает, что2
на изображении 1
.
Что я пробовал:
- позволяет только Tesseract.js распознавать цифры
- изменять сегментациюрежим так, что Tesseract.js ожидает одиночный символ, используя
tessedit_pageseg_mode
- удалить альфа-слой (прозрачность) из изображения и сделать число белым
- инвертировать вышеупомянутое изображение так, чтобы я закончилвверх с черным 2 на белом фоне
Но он продолжает распознавать 1
вместо 2
независимо от того, что я пытаюсь.
Это мой код:
const Tesseract = require('tesseract.js')
async function imageToNumber(img) {
const result = await Tesseract.recognize(img, {
lang: 'eng',
//tessedit_pageseg_mode: '10', // singe char mode
tessedit_char_whitelist: '0123456789'
})
return parseInt(result.text)
}
async function main() {
const detectedNumber = await imageToNumber('2.png')
console.log(detectedNumber)
process.exit()
}
main().catch(console.error)
Что я делаю не так? Как я могу заставить Tesseract.js сделать это правильно?