簡體   English   中英

我如何通過pytesseract搜索圖像中的特定字母/單詞

[英]How can i search specific letters / words in image by pytesseract

我使用pytesseract構建一個項目,它通常會給出一個圖像作為回報,其中所有字母都被顏色覆蓋。 例如 - 在此處輸入圖片說明

我的這個項目的代碼是 -

import cv2
import pytesseract

pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
img = cv2.imread('testing.png')
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)

#Detecting Characters

hImg,wImg,_ = img.shape
boxes = pytesseract.image_to_boxes(img)

for b in boxes.splitlines():
    print(b)
    b = b.split(' ')
    print(b)
    x,y,w,h = int(b[1]),int(b[2]),int(b[3]),int(b[4])
    cv2.rectangle(img,(x,hImg-y),(w,hImg-h),(0,0,255),1)
    cv2.putText(img,b[0],(x,hImg-y+20),cv2.FONT_HERSHEY_COMPLEX,0.5,(0,0,255),1)

cv2.imshow('Result',img)
cv2.waitKey(0)

現在我試圖從中找出特定的字母,作為回報,程序將提供一個圖像,其中只有搜索到的字母會被彩色覆蓋。 我在代碼中所做的編輯是

import cv2
import pytesseract

pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
img = cv2.imread('testing.png')
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)

Q = input("Which letter do you want to find? : ")

#Detecting Characters

hImg,wImg,_ = img.shape
boxes = pytesseract.image_to_boxes(img)

search = []
result = []
count = 0

for b in boxes.splitlines():
    # print(b)
    b = b.split(' ')
    #print(b)
    x,y,w,h,= int(b[1]),int(b[2]),int(b[3]),int(b[4],)
    s = b[0]
    search.append(s)

print(search)

for i in range(len(search)):
    if search[i] == Q:
        result.append(search[i])
        count += 1
    # else:
    #     print("Your desired letter is not found")

print(result)
print("Your desired letter which is", Q , "is found", count , "times")

#     cv2.rectangle(img,(x,hImg-y),(w,hImg-h),(0,0,255),1)
#     cv2.putText(img,b[0],(x,hImg-y+20),cv2.FONT_HERSHEY_COMPLEX,0.5,(0,0,255),1)
#
# cv2.imshow('Result',img)
# cv2.waitKey(0)

我可以找出字母,但我無法將其注入圖片中。

我要的程序是,如果我在程序中搜索H ,那么圖片將覆蓋程序中的所有H ,僅此而已

任何人都可以幫助我嗎?

我已經解決了這個問題。 如果有人想知道,那么修復就在這個循環中——

for b in boxes.splitlines():
    if (b[0]== Q):
        b = b.split(' ')
        x, y, w, h = int(b[1]), int(b[2]), int(b[3]), int(b[4])
        cv2.rectangle(img,(x,hImg-y),(w,hImg-h),(0,0,255),1)
        cv2.putText(img,b[0],(x,hImg-y+20),cv2.FONT_HERSHEY_COMPLEX,0.5,(0,0,255),1)

暫無
暫無

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

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