- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 Python 中使用以下代码从图像中提取文本,
import cv2
import numpy as np
import pytesseract
from PIL import Image
# Path of working folder on Disk
src_path = "<dir path>"
def get_string(img_path):
# Read image with opencv
img = cv2.imread(img_path)
# Convert to gray
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Apply dilation and erosion to remove some noise
kernel = np.ones((1, 1), np.uint8)
img = cv2.dilate(img, kernel, iterations=1)
img = cv2.erode(img, kernel, iterations=1)
# Write image after removed noise
cv2.imwrite(src_path + "removed_noise.png", img)
# Apply threshold to get image with only black and white
#img = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 31, 2)
# Write the image after apply opencv to do some ...
cv2.imwrite(src_path + "thres.png", img)
# Recognize text with tesseract for python
result = pytesseract.image_to_string(Image.open(img_path))#src_path+ "thres.png"))
# Remove template file
#os.remove(temp)
return result
print '--- Start recognize text from image ---'
print get_string(src_path + "test.jpg")
print "------ Done -------"
但输出不正确..输入文件是,
收到的输出是'0001'而不是'D001'
收到的输出是“3001”而不是“B001”
从图像中检索正确的字符所需的代码更改是什么,以及训练 pytesseract 为图像中的所有字体类型返回正确的字符[包括粗体字符]
最佳答案
@Maaaaa 指出了 Tessearact 文本识别错误的确切原因。
但是您仍然可以通过对 tesseract 输出应用一些后处理步骤来改进最终输出。如果有帮助,您可以考虑并使用以下几点:
关于Python - Pytesseract 从图像中提取不正确的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49810566/
尝试将简单的测试图像打印到文本时出现以下错误。 我已经验证我具有Pillow(PIL 1.1.7),并尝试卸载并重新安装pytesseract。文件路径是正确的,因为如果更改它们,则会收到另一个错误消
我正在尝试阅读此图像中还包含小数点和小数的文本 这样: img = cv2.imread(path_to_image) print(pytesseract.image_to_string(img))
我想识别这样的图像: 我正在使用以下配置: config="--psm 6 --oem 3 -c tessedit_char_whitelist=0123456789ABCDEFGHIJKLMNOPQ
我正在尝试通过 opencv 和 pytesseract 运行一个简单的车牌图像来获取文本,但我无法从中获取任何内容。按照这里的教程: https://circuitdigest.com/microc
我有使用 pytesseract 的代码并且工作完美,只有当我尝试识别的图像是 0 到 9 时才不起作用。如果图像只有一位数字,则不会给出任何结果。 这是我正在工作的图像样本 https://driv
我有这张 table 的图片 我正在尝试使用 PyTesseract 解析它。我已经非常接近使用此代码: from PIL import Image, ImageOps import pytesser
我有这个图像是从另一个图像裁剪而来的,我想将此图像作为image_to_string方法的输入: import pytesseract import cv2 num_plate = cv2.imrea
我正在尝试从图像中提取文本,但是pytesseract提供了完全不同的输出,输出下方附加的图像是“Werle”(完整的单词和字符),我尝试了许多不同的处理方法,例如图像增强,rgb2gray,rgb2
这是噪声图像扫描的经典PyTesseract问题。但是,在这种情况下,点矩阵打印机正在文本中打印一些水平的白线。随附一些样本。我不确定哪种预处理将改善文本的扫描。 使用以下命令,以下示例将输出以下内容
我在使用 Pytesser 使用此代码进行测试时遇到了一些问题: from PIL import Image import pytesseract img = Image.open('pic.png'
尝试在 python 上运行 tesseract,这是我的代码: import cv2 import os import numpy as np import matplotlib.pyplot as
我的代码: pytesseract.pytesseract.tesseract_cmd = 'C:/Programs/tesseract' print(pytesseract.image_to_str
我将 MSS 与 pytesseract 结合使用,尝试在屏幕上阅读以确定来自被监视区域的字符串。我的代码如下: import Image import pytesseract import cv2
以下代码在我 friend 的 windows 笔记本电脑上运行完美,但在我的笔记本电脑上,它吐出完全垃圾。我认为这可能与图书馆有关,但我不能肯定地说?你们能告诉我它是否适合您,或者您以前是否遇到过这
我在 Python 中使用以下代码从图像中提取文本, import cv2 import numpy as np import pytesseract from PIL import Image #
我是 pyhton 的新手,我正在使用 haar 级联制作车牌识别系统。我的代码可以很好地检测车牌并制作轮廓,但 pytesseract ocr 无法识别字符并给出奇怪的结果。请帮忙。 The det
我目前遇到 pytesseract 的问题,软件无法在此图像中检测到数字: /image/kmH2R.png 这是从应用了阈值过滤器的更大图像中获取的。 出于某种原因,pytesseract 不想识别
Pytesseract 无法识别数字 6 和 8。它识别 6 作为5 和 5 作为 5, 3 作为 8 和 8 作为 8, Oct 为 0c: 或 0:: 和 Wed 作为 Men。 使用的脚本: c
我有非常高分辨率的工程图/电路图,其中包含许多不同区域的文本。目的是从此类图像中提取文本。 我正在使用 pytesseract 来完成此任务。直接应用 pytesseract 是不可能的,因为在这种情
我目前面临 pytesseract 的问题,该软件无法检测到此图像中的数字: 出于某种原因,pytesseract 不想识别该图像中的数字。有什么建议么?这是我的代码: import pytesser
我是一名优秀的程序员,十分优秀!