Python pytesseract.image_to_字符串不';似乎无法从图像中提取文本

Python pytesseract.image_to_字符串不';似乎无法从图像中提取文本,python,opencv,python-tesseract,Python,Opencv,Python Tesseract,我正在尝试从图像中提取文本,但是,使用我在其他图像上尝试过的以下代码,它可以工作,但不能用于此图像。代码有问题吗 正在尝试从中提取文本的图像: 代码如下: import cv2 import pytesseract import matplotlib.pyplot as plt import matplotlib.image as mpimg try: from PIL import Image except ImportError: import Image # Impor

我正在尝试从图像中提取文本,但是,使用我在其他图像上尝试过的以下代码,它可以工作,但不能用于此图像。代码有问题吗

正在尝试从中提取文本的图像: 代码如下:

import cv2
import pytesseract
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

try:
    from PIL import Image
except ImportError:
    import Image

# Import image, convert,resize and noise removal
img = cv2.imread("sample01.png", cv2.IMREAD_GRAYSCALE)
print('Dimension of image: {}'.format(img.ndim))
img = cv2.resize(img, None, fx=2, fy=2)
blur = cv2.GaussianBlur(img, (5, 5), 0)

# Apply adaptiveThreshold (Mean)
th2 = cv2.adaptiveThreshold(blur, 255, cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY, 11, 2)
cv2.imwrite('resize_adaptive_threshmean.png', th2)

# Apply Tesseract to detect words
print(pytesseract.image_to_string(Image.open('resize_adaptive_threshmean.png')))   
print("=========================================================")
代码有什么问题吗?

导入cv2
导入pytesseract
将matplotlib.pyplot作为plt导入
将matplotlib.image导入为mpimg
尝试:
从PIL导入图像
除恐怖外:
导入图像
data=pytesseract.image_to_字符串(image.open(“sample01.png”))
打印(数据)
导入cv2
导入pytesseract
将matplotlib.pyplot作为plt导入
将matplotlib.image导入为mpimg
尝试:
从PIL导入图像
除恐怖外:
导入图像
data=pytesseract.image_to_字符串(image.open(“sample01.png”))
打印(数据)
好的,您可以使用

导入cv2
将numpy作为np导入
导入pytesseract
img=cv2.imread(“ACtBA.png”)
gry=cv2.CVT颜色(img,cv2.COLOR\u BGR2GRAY)
flt=cv2.自适应阈值(gry,
100,cv2.自适应阈值平均值,
cv2.THRESH_二进制,15,16)
txt=pytesseract.image\u to\u字符串(flt)
打印(txt)
图像将是:

结果:

停车:你可以在校园内没有禁止停车标志的任何地方停车-
国王。记住拼车时间,并相应停车,这样你就不会在车内受阻
下午
在学校里!虽然我们爱年幼的孩子,但这可能会造成破坏和伤害
在上课时间让他们在校园里是不合适的。可能会有特殊的时刻
他们可能会被邀请或陪同家长志愿者,但除此之外,我们要求
为了学生和员工的利益,您遵守我们的-u政策。
我用不同的参数进行测试,所以我认为最合适的参数是:

maxValue=100#显示大于maxValue的像素
块大小=15.#邻里区的面积。
C=16#只是从计算的平均值或加权平均值中减去的常数。
好吧,你可以使用

导入cv2
将numpy作为np导入
导入pytesseract
img=cv2.imread(“ACtBA.png”)
gry=cv2.CVT颜色(img,cv2.COLOR\u BGR2GRAY)
flt=cv2.自适应阈值(gry,
100,cv2.自适应阈值平均值,
cv2.THRESH_二进制,15,16)
txt=pytesseract.image\u to\u字符串(flt)
打印(txt)
图像将是:

结果:

停车:你可以在校园内没有禁止停车标志的任何地方停车-
国王。记住拼车时间,并相应停车,这样你就不会在车内受阻
下午
在学校里!虽然我们爱年幼的孩子,但这可能会造成破坏和伤害
在上课时间让他们在校园里是不合适的。可能会有特殊的时刻
他们可能会被邀请或陪同家长志愿者,但除此之外,我们要求
为了学生和员工的利益,您遵守我们的-u政策。
我用不同的参数进行测试,所以我认为最合适的参数是:

maxValue=100#显示大于maxValue的像素
块大小=15.#邻里区的面积。
C=16#只是从计算的平均值或加权平均值中减去的常数。

My Output:Parking:您可以在ce king上的任何位置停车。记住拼车时间和下午停车学龄以下儿童:虽然我们不喜欢让他们在校园里,但他们可能会被邀请或陪同:为了我的产出,您遵守我们的政策:停车:您可以在ce king上的任何地方停车。请记住学龄儿童的拼车时间和下午停车时间:虽然我们不喜欢邀请他们或让他们陪伴在校园里@):为了我的实施,您遵守我们的政策,调整图像大小和使用Guassian blur是否有帮助?我认为你们的产出要好得多,但我也在寻找使产出最大化的方法。另一方面,我的实现似乎没有任何问题。知道它为什么不生成任何文本吗?对于OCR问题没有直接的预处理方法。因此,您需要尝试这些方法并查看结果。对于这个问题,高斯模糊没有帮助。您的实现没有问题,我想参数很重要。正如我在回答中提到的,我用不同的参数进行了测试,找到了有效的参数并粘贴作为答案。在我的实现中,调整图像大小和使用高斯模糊是否有帮助?我认为你们的产出要好得多,但我也在寻找使产出最大化的方法。另一方面,我的实现似乎没有任何问题。知道它为什么不生成任何文本吗?对于OCR问题没有直接的预处理方法。因此,您需要尝试这些方法并查看结果。对于这个问题,高斯模糊没有帮助。您的实现没有问题,我想参数很重要。正如我在回答中提到的,我用不同的参数进行了测试,找到了有效的参数并粘贴了答案。