如何使用 Tesseract 识别数字时钟值?
How to recognize digital clock values with Tesseract?
我有 3 张数字时钟的图片:
任务:使用 pytesseract
.
以某种方式识别这些照片中的数字
我已经按常规方法尝试过了,但 Tesseract 无法确定任何东西。
编辑:改进了预处理以正确检测两个新的输入示例:
import cv2
import pytesseract
def detect_7_segments(image):
config = '--psm 6 -c tessedit_char_whitelist="0123456789 "'
return pytesseract.image_to_string(image, lang='lets', config=config)
for img_file in ['q0Y40.png', '9dgOm.png', 'XQAfP.png', 'k7BmR.png']:
img = cv2.imread(img_file, cv2.IMREAD_GRAYSCALE)
img = cv2.blur(img, (5, 5))
img = cv2.threshold(img, 64, 255, cv2.THRESH_BINARY)[1]
print(img_file, detect_7_segments(img).replace('\f', '').replace('\n', ''))
# q0Y40.png 0
# 9dgOm.png
# XQAfP.png 67
# k7BmR.png 85
检查LetsGoDigital字体,cf。 , and 了解更多详情。
import cv2
import pytesseract
def detect_7_segments(image):
return pytesseract.image_to_string(image, lang='lets', config='--psm 6')
for img_file in ['XQAfP.png', 'k7BmR.png']:
img = cv2.imread(img_file, cv2.IMREAD_GRAYSCALE)
print(img_file, detect_7_segments(img).replace('\f', ''))
# XQAfP.png 67
#
# k7BmR.png 85
#
----------------------------------------
System information
----------------------------------------
Platform: Windows-10-10.0.19041-SP0
Python: 3.9.1
PyCharm: 2021.1.2
OpenCV: 4.5.2
pytesseract: 5.0.0-alpha.20201127
----------------------------------------
我有 3 张数字时钟的图片:
任务:使用 pytesseract
.
我已经按常规方法尝试过了,但 Tesseract 无法确定任何东西。
编辑:改进了预处理以正确检测两个新的输入示例:
import cv2
import pytesseract
def detect_7_segments(image):
config = '--psm 6 -c tessedit_char_whitelist="0123456789 "'
return pytesseract.image_to_string(image, lang='lets', config=config)
for img_file in ['q0Y40.png', '9dgOm.png', 'XQAfP.png', 'k7BmR.png']:
img = cv2.imread(img_file, cv2.IMREAD_GRAYSCALE)
img = cv2.blur(img, (5, 5))
img = cv2.threshold(img, 64, 255, cv2.THRESH_BINARY)[1]
print(img_file, detect_7_segments(img).replace('\f', '').replace('\n', ''))
# q0Y40.png 0
# 9dgOm.png
# XQAfP.png 67
# k7BmR.png 85
检查LetsGoDigital字体,cf。
import cv2
import pytesseract
def detect_7_segments(image):
return pytesseract.image_to_string(image, lang='lets', config='--psm 6')
for img_file in ['XQAfP.png', 'k7BmR.png']:
img = cv2.imread(img_file, cv2.IMREAD_GRAYSCALE)
print(img_file, detect_7_segments(img).replace('\f', ''))
# XQAfP.png 67
#
# k7BmR.png 85
#
----------------------------------------
System information
----------------------------------------
Platform: Windows-10-10.0.19041-SP0
Python: 3.9.1
PyCharm: 2021.1.2
OpenCV: 4.5.2
pytesseract: 5.0.0-alpha.20201127
----------------------------------------