@frswataru (本石 渉)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

tesseract-ocr 読取値をテキストボックスへインプットする方法を教えてください

解決したいこと

tesseract-ocr テキスト読取値をテキストボックスへインプットしたいです
※出来たらボタンを押したらインプットすようにしたいです
スクリーンショット 2021-01-18 155337.jpg

解決方法を教えて下さい。

該当するソースコード

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" >
    <title>ECSS3.0</title>
    <link rel="stylesheet" href="css/stylesheet.css">
    <link href="css/slick.css" rel="stylesheet" type="text/css">
    <link href="css/slick-theme.css" rel="stylesheet" type="text/css">
<style>
    #container2 {
    overflow: hidden;
    }
    canvas {
    float: left;
    }
    #result-text {
    float: left;
    margin-left: 10px;
    }
</style>
</head>

<body>
    <script src="script.js"></script>
    <div class="header">
        <div class="header-logo"font-weight:bold;>E<span style="font-size:0.3em;font-weight:normal;">lectronic</span>
                                 C<span style="font-size:0.3em;font-weight:normal;">heck</span>
                                 S<span style="font-size:0.3em;font-weight:normal;">heet</span>
                                 S<span style="font-size:0.3em;font-weight:normal;">ystem</span>

        </div>

            <div id="container">
                <div class="circle icon">
                    <span class="bar top"></span>
                    <span class="bar middle"></span>
                    <span class="bar bottom"></span>
                </div>
            </div>

            <div id="containerLogo">
                    <a href="index.html"><img src="images/TCD_B.jpg"></a>   
            </div>




        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
        <script>
            $("#container").click(function () {
                $(".icon").toggleClass("close");
            })
        </script>
    </div>

<!-- <div class="main"> -->
    <nav id="nav">
        <ul>
            <!-- <li><a href="#" onclick="window.close(); return false;">Close</a></li> -->
            <li><a href="index.html">Menu</a></li>
        </ul>

    </nav>

    <div id='container2'>
        <canvas width='500' height='400'></canvas>
        <div id='result-text'></div>
        </div>

        <script src='https://cdnjs.cloudflare.com/ajax/libs/tesseract.js/2.1.4/tesseract.min.js'></script>
            <script>
            // canvas(video)&text(result-text)宣言
            const canvas = document.querySelector('canvas');
            const context = canvas.getContext('2d');

            const image = document.createElement('video');

            const resultText = document.getElementById('result-text');
            let textBlocks = [];

            // videoのサイズ変更
            image.videoWidth = canvas.width;
            image.videoHeight = canvas.height;

            navigator.mediaDevices.getUserMedia({
            video: {
            facingMode: { ideal: 'environment' },
            }
            })
            .then(stream => {
            image.srcObject = stream;
            image.play();

            videoDisplay();

            setTimeout(analysis);
            });


            // 赤枠の発火条件_Textデータの個数が0以上
            const videoDisplay = () => {
            context.drawImage(image, 0, 0, canvas.width, canvas.height);
            context.strokeStyle = "rgb(255, 0, 0) ";
            context.lineWidth = 3;
            // Path描画(閉じたオブジェクト)
            context.beginPath(100, 150);
            context.lineTo(400, 150);
            context.lineTo(400, 250);
            context.lineTo(100, 250);
            context.lineTo(100, 150);
            context.closePath();
            context.stroke(); 

            // 青枠の発火条件_Textデータの個数が1以上
            context.strokeStyle = "rgb(0, 0, 255) ";
            textBlocks.forEach((block) => {
            context.beginPath(block.bbox.x0, block.bbox.y0);
            context.lineTo(block.bbox.x1, block.bbox.y0);
            context.lineTo(block.bbox.x1, block.bbox.y1);
            context.lineTo(block.bbox.x0, block.bbox.y1);
            context.lineTo(block.bbox.x0, block.bbox.y0);
            context.closePath();
            context.stroke();
            });

            // textBlocks
            console.log(textBlocks) 

            requestAnimationFrame(videoDisplay);
            };

            // 発火条件
            const analysis = () => {
                (async () => {
                    const worker = Tesseract.createWorker();
                    await worker.load();
                    await worker.loadLanguage('eng');
                    await worker.initialize('eng');
                    const { data: { text, blocks } } = await worker.recognize(canvas.toDataURL(), {
                        rectangle: {
                        left: 100, top: 150, width: 300, height: 100
                        }
                    });

                    textBlocks = blocks;
                    await worker.terminate();

                    resultText.innerHTML = text.replace(/\r?\n/g, '<br>');
                    setTimeout(analysis, 800);
                })();
            };

            </script>


    <!-- <div class="main"> 

        <div class="contents">

            <div class="contents-item">
                <a href="ocr.html"><img src="images/Camera.png"></a>
                <p>Camera</p>
            </div>
            <div class="contents-item">
                <img src="images/Create.png">
                <p>Create</p>   
            </div>

        </div>      
    </div> -->

<!-- </div> -->

<div class="SDkEP">
    <div id="inputWrapper">
        <div class="inputTextBox">
            <input id="input" type="search" autocomplete="off"  aria-live="polite" placeholder="ED を入力">
        </div>      
        <div class="inputTextBox">          
            <input id="input" type="search" autocomplete="off" aria-live="polite" placeholder="DS を入力">           
        </div>          
    </div>
</div>


</body>
</html>
0 likes

1Answer

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>
    <button>click me!</button>
    <input id="dst" type="text">
    <script>
    const srcText = "hogehoge";
    $("button").click(function() {
        $("#dst").val(srcText);
    });
    </script>
</body>
</html>
2Like

Comments

Your answer might help someone💌