簡體   English   中英

檢測和分割 OCR 的圖像

[英]detect and split image for OCR

我正在嘗試 OCR 標准表格(正面和背面都掃描它們)

在此處輸入圖片說明 在此處輸入圖片說明

我只想 OCR 掃描的第二個圖像(帶有文本信息的圖像)-有沒有辦法檢測和拆分它們,並且只處理正確的圖像? 對不起,如果我錯過了一些重要的東西,剛剛開始。

 import pytesseract as tess
    import os
    from PIL import Image
    import pandas as pd
    import tesserocr



    path = "/Users/oliviervandhuynslager/PycharmProjects/OCR/DC_SCANS_TEST" ##path to directory (folder) where the images are located

    count = 0
    fileName = [] #create empty list that will contain the original filenames
    fullText = [] #create empty list to store the OCR results per file
    for imageName in os.listdir("/Users/oliviervandhuynslager/PycharmProjects/OCR/DC_SCANS_TEST"):
        count = count + 1
        fileName.append(imageName)
        fileName.sort()#generate list from texts.
    #%%
     # APPEND (OCR) text from images TO LIST fullText
    for imageName in os.listdir("/Users/oliviervandhuynslager/PycharmProjects/OCR/DC_SCANS_TEST"):
        inputPath = os.path.join(path, imageName)
        img = Image.open(inputPath)
        text = tess.image_to_string(img, lang="eng")
        fullText.append(text)

這是呈現圖像的工作示例:

import cv2
import numpy as np
import pytesseract

pytesseract.pytesseract.tesseract_cmd=r"C:\Program Files\Tesseract-OCR\tesseract.exe"

img = cv2.imread("BFezy.png", 0)

kernel = np.ones((25, 25), np.uint8)
eroded = cv2.erode(img, kernel, iterations=2)
dilated = cv2.dilate(eroded, kernel, iterations=1)
thresholded = cv2.threshold(dilated, 150, 255, cv2.THRESH_BINARY_INV)[1]
countours = cv2.findContours(th, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)[0]
if len(countours) == 2:
    x, y, w, h = cv2.boundingRect(countours[0])
    crop = img[y:h + y, x:w + x]
    text = pytesseract.image_to_string(crop)
    print(text)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM