html网页使用tesseract实现OCR文字识别

即在前端实现OCR文字识别

1.前端代码

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>OCR文字识别</title>
    <script src='https://cdn.jsdelivr.net/npm/tesseract.js@5/dist/tesseract.min.js'>
    //使用CDN加载tesseract,如若失效,请自行查找替换
   </script>
</head>

<style>
    * {
        margin: 0;
        padding-left: 0;
    }

    header {
        height: 100px;
        width: 100vw;
        background: #F5F7F8;
    }

    header p {
        text-align: center;
        font-size: 20px;
        line-height: 100px;
    }

    .core {
        height: 540px;
        width: 1000px;
        margin: 20px auto;
    }

    .core .source {
        float: left;
        width: 480px;
        margin: 0 10px;
    }

    .core .source #uploadedImage {
        width: 480px;
        height: 298px;
    }

    .core .result {
        float: left;
        width: 480px;
        margin: 0 10px;
    }

    .core .result #resultMsg {
        width: 480px;
        height: 298px;
    }
</style>

<body>
    <header>
        <p>OCR文字识别</p>
    </header>
    <div class="core">
        <div class="source">
            <img id="uploadedImage">
            <input type="file" id="imageInput" accept="image/png,image/jpeg,image/jpg" onchange="uploadImage(this)">
            
        </div>

        <div class="result">
            <textarea name="" id="resultMsg" cols="30" rows="10"></textarea>
        </div>

    </div>

    <script> 
        // 监听图片输入字段的改变事
        document.getElementById('imageInput').addEventListener('change', function (e) {
            // 获取用户选择的文件
            var file = e.target.files[0];
            if (file) {
                var reader = new FileReader();
                // 当文件读取完成时,创建一个Image对象并设置其src属性,然后处理图片加载完成的事件
                reader.onload = function (e) {
                    var image = new Image();
                    image.src = e.target.result;
                    // 当图片加载完成后,显示图片并进行文字识别
                    image.onload = function () {
                        //预览图片
                        document.getElementById('uploadedImage').src = image.src;
                        document.getElementById('uploadedImage').style.display = 'block';

                        // 使用Tesseract.js进行文字识别
                        Tesseract.recognize(
                            image,
                            'chi_sim',
                            {
                                logger: info => console.log(info)
                            }
                        ).then(result => {
                            console.log('【识别结果】', result.data.text);
                            // 将识别结果文本输入到页面元素中
                            if (result && result.data.text) {
                                document.getElementById('resultMsg').value = result.data.text;
                            } else {
                                console.error('【错误】无法从识别结果中检索文本');
                            }
                        });
                    };
                };
                reader.readAsDataURL(file);
            }
        });
    </script>
</body>

</html>

2.实现效果

2.1识别页面

2.2识别效果


相关推荐
fanruitian33 分钟前
uniapp android开发 测试板本与发行版本
前端·javascript·uni-app
rayufo36 分钟前
【工具】列出指定文件夹下所有的目录和文件
开发语言·前端·python
RANCE_atttackkk40 分钟前
[Java]实现使用邮箱找回密码的功能
java·开发语言·前端·spring boot·intellij-idea·idea
2501_944525542 小时前
Flutter for OpenHarmony 个人理财管理App实战 - 支出分析页面
android·开发语言·前端·javascript·flutter
李白你好3 小时前
Burp Suite插件用于自动检测Web应用程序中的未授权访问漏洞
前端
刘一说4 小时前
Vue 组件不必要的重新渲染问题解析:为什么子组件总在“无故”刷新?
前端·javascript·vue.js
徐同保5 小时前
React useRef 完全指南:在异步回调中访问最新的 props/state引言
前端·javascript·react.js
刘一说5 小时前
Vue 导航守卫未生效问题解析:为什么路由守卫不执行或逻辑失效?
前端·javascript·vue.js
一周七喜h6 小时前
在Vue3和TypeScripts中使用pinia
前端·javascript·vue.js
weixin_395448916 小时前
main.c_cursor_0202
前端·网络·算法