gpt4 book ai didi

python-3.x - 如何使图像对比度更高,灰度然后使用 PIL 和 pytesseract 准确获取所有字符?

转载 作者:行者123 更新时间:2023-12-03 17:28:33 25 4
gpt4 key购买 nike

请在此处下载附件并另存为 /tmp/target.jpg .
enter image description here
可以看到有0244R在jpg中,我使用以下python代码提取字符串:

from PIL import Image
import pytesseract
import cv2
filename = "/tmp/target.jpg"
image = cv2.imread(filename)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
ret, threshold = cv2.threshold(gray,55, 255, cv2.THRESH_BINARY)
print(pytesseract.image_to_string(threshold))
我得到的是
0244K
正确的字符串是 0244R ,如何使图像对比度更高,灰度然后使用 PIL 和 pytesseract 获得所有字符?
这是生成图像的网页:
http://www.crup.cn/ValidateCode/Index?t=0.14978241776661583

最佳答案

如果您申请 adaptive-thresholdingbitwise-not对输入图像的操作,结果将是:
enter image description here
现在,如果您删除特殊字符,如(点、逗号等)

txt = pytesseract.image_to_string(bnt, config="--psm 6")
res = ''.join(i for i in txt if i.isalnum())
print(res)
结果将是:
O244R
代码:

import cv2
import pytesseract

img = cv2.imread("Aw6sN.jpg")
gry = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
thr = cv2.adaptiveThreshold(gry, 255, cv2.ADAPTIVE_THRESH_MEAN_C,
cv2.THRESH_BINARY_INV, 23, 100)
bnt = cv2.bitwise_not(thr)
txt = pytesseract.image_to_string(bnt, config="--psm 6")
res = ''.join(i for i in txt if i.isalnum())
print(res)

关于python-3.x - 如何使图像对比度更高,灰度然后使用 PIL 和 pytesseract 准确获取所有字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58314275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com