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识别效果


相关推荐
m0_5287238110 分钟前
HTML中,title和h1标签的区别是什么?
前端·html
Dark_programmer10 分钟前
html - - - - - modal弹窗出现时,页面怎么能限制滚动
前端·html
GDAL16 分钟前
HTML Canvas clip 深入全面讲解
前端·javascript·canvas
禾苗种树17 分钟前
在 Vue 3 中使用 ECharts 制作多 Y 轴折线图时,若希望 **Y 轴颜色自动匹配折线颜色**且无需手动干预,可以通过以下步骤实现:
前端·vue.js·echarts
贵州数擎科技有限公司39 分钟前
使用 Three.js 实现流光特效
前端·webgl
JustHappy40 分钟前
「我们一起做组件库🌻」做个面包屑🥖,Vue的依赖注入实战💉(VersakitUI开发实录)
前端·javascript·github
拉不动的猪1 小时前
刷刷题16
前端·javascript·面试
祈澈菇凉2 小时前
如何结合使用thread-loader和cache-loader以获得最佳效果?
前端
垣宇2 小时前
Vite 和 Webpack 的区别和选择
前端·webpack·node.js
java1234_小锋2 小时前
一周学会Flask3 Python Web开发-客户端状态信息Cookie以及加密
前端·python·flask·flask3