You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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)

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

# 检测字符
hImg,wImg,_ = img.shape
boxes = pytesseract.image_to_boxes(img)

count = 0

for b in boxes.splitlines():
    b = b.split(' ')
    x,y,w,h = int(b[1]),int(b[2]),int(b[3]),int(b[4])
    s = b[0]
    # 匹配到目标字符才标注、计数
    if s == Q:
        count += 1
        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)

print(f"你搜索的字符 {Q} 共出现 {count} 次")

cv2.imshow('Result',img)
cv2.waitKey(0)
# 如果需要保存标注后的图片可以加下面这行
# cv2.imwrite('result.png', cv2.cvtColor(img, cv2.COLOR_RGB2BGR))

如果需要不区分大小写匹配,把判断条件改成if s.upper() == Q.upper()即可。

内容的提问来源于stack exchange,提问作者Shahadat Nayeem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 11:36:03